Скины Диалоги при использовании XP Themes?

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

(И рисование владельца действительно НЕ вариант - если я вытащу владельца все мои элементы управления, вся мотивация для переключения на общие элементы управления 6 в первую очередь исчезнет).

0 ответов

Другие вопросы по тегам