如何避免在改变窗口大小时的闪烁?已经使用RECT保存剪切掉(或新增加)的区域,只刷新该区域,可是还是不行。
使用WIN32编的:
case WM_COMMAND:
rect.left = 700;
rect.right = 975;
rect.top = 0;
rect.bottom = 550;
if ((HWND)lParam == hButton1)//如何防止闪屏
{
ShowWindow(hButton1, SW_HIDE);
MoveWindow(hwnd, 100, 100, 800, 550, TRUE);
InvalidateRect(hwnd, &rect, TRUE);
UpdateWindow (hwnd);
ShowWindow(hButton2, SW_SHOW);
}
难道MoveWindow一定会刷新整个窗口?谢谢
使用WIN32编的:
case WM_COMMAND:
rect.left = 700;
rect.right = 975;
rect.top = 0;
rect.bottom = 550;
if ((HWND)lParam == hButton1)//如何防止闪屏
{
ShowWindow(hButton1, SW_HIDE);
MoveWindow(hwnd, 100, 100, 800, 550, TRUE);
InvalidateRect(hwnd, &rect, TRUE);
UpdateWindow (hwnd);
ShowWindow(hButton2, SW_SHOW);
}
难道MoveWindow一定会刷新整个窗口?谢谢
例如:
case WM_PAINT: return TRUE;
返回true 告诉程序,所有的WM_PAINT 事件,我已经自己处理完了,windows 操作系统不要管了..如果希望windows 做余下的事情就返回 FALSE
整个窗口都会重绘,简单的解决办法就是 style = 0;