在资源编辑器中,编辑静态文本项,并将其控件 ID 更改为唯一的:例如 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,因此了解哪个返回是合适的很重要。