我一直在使用WM_CTLCOLORSTATIC,WM_CTLCOLORBTN消息对对话框进行换肤: -
case WM_CTLCOLORSTATIC:
case WM_CTLCOLORBTN:
hdc = (HDC)wParam;
hwndCtl = (HWND)lParam;
SetTextColor(hdc,RGB(0xff,0xff,0xff));
SetBkMode(hdc,TRANSPARENT);
pt.x = 0;
pt.y = 0;
MapWindowPoints(hwndCtl,_hwnd,&pt,1);
x = -pt.x;
y = -pt.y;
SetBrushOrgEx(hdc,x,y,NULL);
return (INT_PTR)_skinBrush;
当背景画笔绘制低对比度图像时,此代码将所有静态元素的文本颜色设置为白色。
Ive(仅)最近更新了我的对话框使用Common Controls 6和XP-Themeing外观,但控件上的所有文字都被'消失了',因为它再次以默认黑色绘制。
在xp-themeing下是否有其他方法可以控制控件的文本颜色?或者我现在需要考虑拥有者:-(?
(并且所有者抽签实际上不是一个选项 - 如果我拥有所有控件,那么首先切换到公共控件6的整个动机就会消失。)