WM_PAINT消息怎么绘制被覆盖的区域

thro3389 2011-06-27 03:40:53
我自己画的图形被另外一个窗口覆盖了。当那个窗口拉走的时候。会收到一个WM_PAINT消息
怎么才可以绘制我自己的图形被覆盖的那个地方呢。?难道我要把绘制整个图形的代码放在WM_PAINT消息里面吗?每次重画全部?这样做是不是不太好啊
如果有方法绘制被覆盖的地方 怎么算出覆盖的地方对应我自己的图形的坐标什么的呢。给我好点的意见
...全文
67 8 打赏 收藏 转发到动态 举报
写回复
用AI写文章
8 条回复
切换为时间正序
请发表友善的回复…
发表回复
向立天 2013-02-02
  • 打赏
  • 举报
回复
您好 我是本版版主 此帖已多日无人关注 请您及时结帖 如您认为问题没有解决可按无满意结帖处理 另外本版设置了疑难问题汇总帖 并已在版面置顶 相关规定其帖子中有说明 您可以根据规定提交您帖子的链接 如您目前不想结帖只需回帖说明 我们会删除此结帖通知 见此回复三日内无回应 我们将强制结帖 相关规定详见界面界面版关于版主结帖工作的具体办法
simoreg 2011-06-28
  • 打赏
  • 举报
回复
折中方案

建立一个成员变量CDC,创建为内存dc
然后在代码里确定什么时候需要重绘,重绘时写进dc
最后,在响应WM_PAINT直接将dc拷贝。
thro3389 2011-06-27
  • 打赏
  • 举报
回复
OK 在工作量和效率面前还是向工作量低头吧 谢谢
evangelinelm 2011-06-27
  • 打赏
  • 举报
回复
都是放在WM_PAINT或者WM_DRAW消息里面就可以了。要效率的话,就要追求局部刷新了。就比较麻烦了。
fjbuilding 2011-06-27
  • 打赏
  • 举报
回复
如果lz十分在意效率,请baidu:“脏矩形”技术,它和你的思想很接近。

具体来说和覆盖不覆盖没关系,窗口中图片都是保存在dc里面的,要绘制图片直接操作dc即可。一般来说都是直接放到OnPaint或OnDraw中,提高效率的话可以考虑局部刷新。
thro3389 2011-06-27
  • 打赏
  • 举报
回复
这个方法确实可以。但是会不会影响效率。
thro3389 2011-06-27
  • 打赏
  • 举报
回复
你的意思说绘制整个图形的代码放在WM_PAINT里。然后有这个消息 全部重绘?
Eleven 2011-06-27
  • 打赏
  • 举报
回复
绘制的代码放到OnPaint函数即可

15,979

社区成员

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

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