Скины Диалоги при использовании XP Themes? - PullRequest
3 голосов
/ 19 июля 2010

Я делал скины для диалогов, используя сообщения 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 в первую очередь падает).

...