使用XP主题时的皮肤对话?

时间:2010-07-19 15:01:40

标签: windows skinning comctl32 xp-theme

我一直在使用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的整个动机就会消失。)

0 个答案:

没有答案