我是一名中国学生,这是我在外国论坛上提出的第一个问题。我写了两个程序,一个可以正常运行,另一个失败。
这是正常的:
case WM_PAINT:
hdc = BeginPaint (hwnd, &ps) ;
if(fIsTime)
ShowTime(hdc, &st);
else
ShowDate(hdc, &st);
EndPaint (hwnd, &ps) ;
return 0 ;
这是失败的一个:
case WM_PAINT:
hdc = BeginPaint (hwnd, &ps) ;
hdcMem = ::CreateCompatibleDC(hdc);
hBitmap = ::CreateCompatibleBitmap(hdc, cxClient, cyClient);
::SelectObject(hdcMem, hBitmap);
if(fIsTime)
ShowTime(hdcMem, &st);
else
ShowDate(hdcMem, &st);
::BitBlt(hdcMem, 0, 0, cxClient, cyClient, hdc, 0, 0, SRCCOPY);
::DeleteObject(hBitmap);
::DeleteDC(hdcMem);
EndPaint (hwnd, &ps) ;
return 0 ;
两个代码之间唯一的区别是WM_Paint
代码块,后一个不能显示任何东西。我对后一个代码中的错误在哪里感到困惑?