父窗体中弹出msgbox,移动msgbox,GetUpdateRect得到的rect为什么是整个父窗体的大小
本人在写一个hook的皮肤,遇到如下问题:
父窗体中弹出msgbox,移动msgbox,屏幕会闪烁,
在收到WM_PAINT消息时,通过GetUpdateRect得到的rect大小是整个父窗口的大小。
为什么GetUpdateRect得到的是整个父窗体的大小,而不是需要更新的最小矩形区域的大小呢?
应该如何做才能得到被遮挡的那一部分矩形区域呢?
收到WM_PAINT时调用:
void SkinDialog(HWND hWnd,WPARAM wParam, LPARAM lParam)
{
CRect temptemp;
::GetUpdateRect(hWnd,&temptemp,FALSE);
TRACE("SkinDialog:x=%d y=%d x1=%d y1=%d\n",temptemp.left,temptemp.top,temptemp.right,temptemp.bottom);
}