我在WM_CTLCOLORSTATIC下面处理:(目的是设置一个STATIC的颜色,SDK,没用MFC)
if((GetDlgItem(hwnd,IDC_STATIC_LINK_SERVICE)==(HWND)lParam)
{
SetTextColor((HDC)wParam, 0xff0000);
SetBkMode((HDC)wParam, TRANSPARENT);
return 0;//用这个,在XP风格下正常,在2K下字体颜色不变
return (LRESULT)GetSysColorBrush(COLOR_MENU);//用这个,2K下正常,在XP下背景不对
return (LRESULT)GetSysColorBrush(COLOR_BTNFACE);//2K下正常,XP下背景不对。属性对话框背景不是灰的。
}怎么办?

解决方案 »

  1.   

    呵呵,你给我发邮件我就会回复的啊~~~呵呵,要不你留下你的E-MAL,那个类好大的,粘不上来~~
      

  2.   

    呵呵,你给我发邮件我就会回复的啊~~~呵呵,要不你留下你的E-MAL,那个类好大的,粘不上来~~
      

  3.   

    在WM_PAINT里试过,对话框没问题,不过属性对话框就不大对头了,还是那个返回值的问题。XP风格的属性对话框的属性页的背景色不是COLOR_BTNFACE,而是有点反白的那种。:(
      

  4.   

    非常感谢各位帮助。突然想起这么做就可以了:case WM_CTRLCOLORSTATIC:
    {
    HBRUSH hBrush=(HBRUSH)DefWindowProc(hwnd,uMsg,wParam,lParam);//保存系统默认背景刷
    SetTextColor((HDC)wParam, 0xff0000);
    SetBkMode((HDC)wParam, TRANSPARENT);
    return (LRESULT)hBrush;//返回系统默认背景刷。
    }