N
netbug
Unregistered / Unconfirmed
GUEST, unregistred user!
我用C++编写了个windows的程序,请看过程函数:<br>LRESULT CALLBACK WndProc (HWND hwnd, UINT message, WPARAM wParam, LPARAM lParam)<br>{<br> HDC hdc ;<br> PAINTSTRUCT ps ;<br> RECT rect ;<br> switch (message)<br> {<br> case WM_CREATE:<br> return 0 ;<br> case WM_RBUTTONDOWN:<br> hdc=GetDC(hwnd);<br> TextOut(hdc,10,10,"Hello",5);<br> ReleaseDC(hwnd,hdc);<br> return 0;<br> case WM_PAINT:<br> hdc = BeginPaint (hwnd, &ps) ;<br> EndPaint (hwnd, &ps) ;<br> return 0 ;<br> <br> case WM_DESTROY:<br> PostQuitMessage (0) ;<br> return 0 ;<br> }<br> return DefWindowProc (hwnd, message, wParam, lParam) ;<br>}<br>当我右击时,在窗口出现Hello,并当我按住标题栏移动时(没有与显示器的边框重合),<br>窗口中的Hello始终存在.我又把程序中的WM_PAINT消息该成了:<br> case WM_PAINT:<br> return 0 ;<br>此次当我右击时,窗口出现Hello,并当我按住标题栏稍微移动时,窗口中的Hello<br>就没了.我想问:<br>在程序更改前后,我在运行时,都没有产生无效矩形区,也就是说都没有产生WM_PAINT消息,<br>而我在更改WM_PAINT消息的前后,为何会有不同的效果?谢谢.