窗口下显示和清除文字有关问题
窗口上显示和清除文字问题
我在消息处理函数中写:
我的目的是在窗口上显示和消除文字,但是这段代码不起作用,请问是什么问题?
------解决方案--------------------
不要直接发WM_PAINT消息,而是用InvalidateRect
我在消息处理函数中写:
- C/C++ code
LRESULT CALLBACK WndProc( HWND hwnd, UINT message, WPARAM wParam, LPARAM lParam ) { int wmId, wmEvent; HDC hdc; PAINTSTRUCT ps; bool flag=true; switch(message) { case WM_PAINT://控制显示和消除文字 hdc=BeginPaint(hwnd,&ps); if(flag) TextOut(hdc,100,100,"flag=true",10); else TextOut(hdc,100,100,"flag=false",10); EndPaint(hwnd,&ps); break; case WM_CREATE: break; case WM_CLOSE: DestroyWindow(hwnd); break; case WM_DESTROY: PostQuitMessage(0); break; case WM_LBUTTONDOWN: OnLbuttonDown(hwnd); break; case WM_COMMAND: wmId = LOWORD(wParam); wmEvent = HIWORD(wParam); // 分析菜单选择: switch (wmId) { case ID_DIALOGOUT: DialogBox(hInst, MAKEINTRESOURCE(IDD_INPUT), hwnd, InputDlg); break; case ID_TEXTOUT://点击菜单上的显示文字 flag=true; SendMessage(hwnd,WM_PAINT,NULL,NULL); break; case ID_TEXTCLEAR://点击菜单上的清除文字 flag=false; SendMessage(hwnd,WM_PAINT,NULL,NULL); break; default: return DefWindowProc(hwnd, message, wParam, lParam); } break; default: return DefWindowProc(hwnd,message,wParam,lParam); } return false; }
我的目的是在窗口上显示和消除文字,但是这段代码不起作用,请问是什么问题?
------解决方案--------------------
不要直接发WM_PAINT消息,而是用InvalidateRect