父窗体中弹出msgbox,移动msgbox,GetUpdateRect得到的rect为什么是整个父窗体的大小

mhwgozp 2011-08-18 03:55:48
本人在写一个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);
...全文
116 3 打赏 收藏 转发到动态 举报
写回复
用AI写文章
3 条回复
切换为时间正序
请发表友善的回复…
发表回复
mhwgozp 2011-08-18
  • 打赏
  • 举报
回复
是被我错误的调用了这个函数。。。。晕倒,谢谢。。
mhwgozp 2011-08-18
  • 打赏
  • 举报
回复
我把所有调用了的Invalidate关掉试试
ndy_w 2011-08-18
  • 打赏
  • 举报
回复
是不是调用Invalidate了?

15,976

社区成员

发帖
与我相关
我的任务
社区描述
VC/MFC 界面
社区管理员
  • 界面
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧