区域刷新无效

tjololo 2008-08-18 08:15:02
我需要在父窗口中重绘子窗口区域,但却刷新了整个区域。代码如下:
子窗口先绘制到内存m_dc中,然后要求父窗口更新子窗口区域。
CChild::Paint(CDC *pDC)
{
CRect rWindow;
GetWindowRect(rWindow);
GetParent()->ScreenToClient(rWindow);

pDC->BitBlt(rWindow.left,rWindow.top,rWindow.Width(),rWindow.Height(),
&m_dc,0,0,SRCCOPY);
//要求更新子窗口区域
rWindow.InflateRect(1,1); //如果原字窗口区域的话会调用子窗口的OnPaint进行处理。
GetParent()->Invalidate();
}

//再在父窗中调子窗口的函数进行更新。
CMyDialog::OnPaint()
{
CPaintDC dc(this);
child->Paint(&dc);
}

...全文
73 5 打赏 收藏 转发到动态 举报
写回复
用AI写文章
5 条回复
切换为时间正序
请发表友善的回复…
发表回复
tjololo 2008-08-21
  • 打赏
  • 举报
回复
奇怪,这问题真有这么难????
tjololo 2008-08-19
  • 打赏
  • 举报
回复
Sorry,我写错了,我是用InvalidateRect的。
rWindow.InflateRect(1,1);
GetParent()->InvalidateRect(rWindow);
11000000 2008-08-19
  • 打赏
  • 举报
回复

试试InvalidateRect();
tjololo 2008-08-19
  • 打赏
  • 举报
回复
支持下,顶...
tjololo 2008-08-19
  • 打赏
  • 举报
回复
是我没表达清楚还是问题太难,人气太少啦。

19,504

社区成员

发帖
与我相关
我的任务
社区描述
硬件/嵌入开发 嵌入开发(WinCE)
社区管理员
  • 嵌入开发(WinCE)社区
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

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