为什么在WM_CREATE消息中调用SetTextColor()函数而在WM_PAINT消息中不起作用?
我依照windows程序设计第五版的第三章的例子做了一个程序:
(WINMAIN函数略)
LRESULT CALLBACK WndProc (HWND hwnd, UINT message, WPARAM wParam, LPARAM lParam)
{
HDC hdc ;
PAINTSTRUCT ps ;
RECT rect ;
switch (message)
{
case WM_CREATE:
hdc=GetDC(hwnd);
SetTextColor(hdc,20000);
ReleaseDC (hwnd, hdc) ;
return 0 ;
case WM_PAINT:
hdc = BeginPaint (hwnd, &ps) ;
GetClientRect (hwnd, &rect) ;
DrawText (hdc, TEXT ("Hello, Windows 98!"), -1, &rect,
DT_SINGLELINE | DT_CENTER | DT_VCENTER) ;
EndPaint (hwnd, &ps) ;
return 0 ;
//……
}
我明明在WM_CREATE消息中通过SetTextColor函数设置了系统的字体颜色,可是在运行时仍然是默认的黑色字体(我发现那个SetTextColor()一定要放在WM_CREATE消息中的hdc=BeginPaint(hwnd,&ps)之后才行),为什么?
请高手们赐教!