В редакторе ресурсов отредактируйте статический текстовый элемент и измените его контрольный идентификатор на нечто уникальное: например, IDC_BOLD.
В DialogProc для диалоговых окон, в которых размещается элемент управления, добавьте обработчик WM_CTLCOLORSTATIC
:
case WM_CTLCOLORSTATIC:
HDC hdc;
HWND hwndCtl;
hwndCtl = (HWND) lParam;
hdc = (HDC) wParam;
if( GetWindowLong(hwndClt, GWL_ID ) == IDC_BOLD )
{
SetBkMode(hdc,TRANSPARENT);
SetTextColor(hdc,RGB(0xff,0,0)); // turn the text red for fun :)
SelectObject(hdc,hBoldFont); // but you want this...
return (INT_PTR)GetSysColorBrush(COLOR_BTNFACE);
//return 0L; // if visual themes are enabled (common controls 6) then 0 is better.
}
// default processing
return 0;
Вы разрабатываете для Pocket PC 2003, я не знаю, какие стили кнопок доступны. Эта страница относится, конечно, к настольной XP. Но если кнопки в диалоговых окнах не являются плоскими серыми кнопками 95esq, то было бы более целесообразно вернуть 0, поскольку это правильно закрасит текстовый фон, если фон диалогов не является простым серым.
Предвизуальный стиль возвращает 0, заставляет систему сбрасывать DC, поэтому важно знать, какой возврат подходит.