Я делал скины для диалогов, используя сообщения 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?Или мне нужно рассмотреть владелец draw сейчас :-(?
(И ничья владельца действительно не вариант - если я владелец тянуть все мои элементы управления, вся мотивация для перехода к общим элементам управления 6 в первую очередь падает).