none
Win7下MFC里面CTreeCtrl不会发送WM_CTLCOLOR消息到父窗口 RRS feed

  • 问题

  • Win7下MFC里面树形控件(被继承重写了部分代码)不会发送WM_CTLCOLOR消息到父窗口,其他控件倒是可以 父窗口是个Dialog,样式被设置成WS_EX_LAYERED、SetLayeredWindowAttributes(RGB(255,0,255), 0, LWA_COLORKEY) 在Windows XP下面,父窗口OnCtlColor可以接收到来自树形控件的消息,但是在Windows 7下面就收不到了,导致我不能让树形控件背景透明
    2010年12月16日 3:08

答案

  • 你好,

    这是一个已知的问题。在Window Vista 或Windows 7中,如果启用Aero主题,并且使用COMMON CONTROL 6.0, WM_CTLCOLOR不会被发送。很抱歉,这个问题尚未被修复。

    作为一个解决方案,你可以尝试以下方法

    1。关闭Windows Aero效果。

    2。使用Common Control 5.0。(你可以在stdafx。h中注释掉Common Control 6相关代码。这样MFC程序会自动使用Common Control 5.0。)

    希望以上信息对您有所帮助。

    Yi-Feng

     


    Yi Feng Li [MSFT]
    MSDN Community Support | Feedback to us
    Get or Request Code Sample from Microsoft
    Please remember to mark the replies as answers if they help and unmark them if they provide no help.

    • 已标记为答案 Selphen Chu 2010年12月21日 6:28
    2010年12月17日 9:24
    版主

全部回复

  • 你好,

    这是一个已知的问题。在Window Vista 或Windows 7中,如果启用Aero主题,并且使用COMMON CONTROL 6.0, WM_CTLCOLOR不会被发送。很抱歉,这个问题尚未被修复。

    作为一个解决方案,你可以尝试以下方法

    1。关闭Windows Aero效果。

    2。使用Common Control 5.0。(你可以在stdafx。h中注释掉Common Control 6相关代码。这样MFC程序会自动使用Common Control 5.0。)

    希望以上信息对您有所帮助。

    Yi-Feng

     


    Yi Feng Li [MSFT]
    MSDN Community Support | Feedback to us
    Get or Request Code Sample from Microsoft
    Please remember to mark the replies as answers if they help and unmark them if they provide no help.

    • 已标记为答案 Selphen Chu 2010年12月21日 6:28
    2010年12月17日 9:24
    版主
  • Thanks

    找到解决问题的办法了

    2010年12月21日 6:28
  • How?
    2014年7月7日 1:10