拖动窗口没有WM_PAINT消息

qq_27691569 2016-02-13 10:27:20
win7的系统,拖动和遮盖都没有WM_PAINT 消息,但是改变窗口大小就有WM_PAINT 消息,我记得课堂上老师说的都有WM_PAINT才对,是系统的问题么?上课的是XP系统
...全文
181 5 打赏 收藏 转发到动态 举报
写回复
用AI写文章
5 条回复
切换为时间正序
请发表友善的回复…
发表回复
门徒681 2016-04-18
  • 打赏
  • 举报
回复
拖动窗口,窗口内容如果不改变,是不会有WM_PAINT消息的。在XP上也不会有。 另外,窗口有个属性:WS_LAYERED,如果是Layered窗口,那么它是缓存模式的,内容不改变时,不会收到WM_PAINT,即使被其它窗口挡住再移开也不会,因为内容并没有改变。
向立天 2016-03-30
  • 打赏
  • 举报
回复
您好 我是本版版主 此帖已多日无人关注 请您及时结帖 如您认为问题没有解决可按无满意结帖处理 另外本版设置了疑难问题汇总帖 并已在版面置顶 相关规定其帖子中有说明 您可以根据规定提交您帖子的链接 如您目前不想结帖只需回帖说明 我们会删除此结帖通知 见此回复多日内无回应 我们将强制结帖 相关规定详见界面界面版关于版主结帖工作的具体办法
  • 打赏
  • 举报
回复
你要画图还是写在onpaint里面。你管他有没有消息。反正能拖就是了。能刷新显示就是了、不知道你具体要实现什么?
zuishikonghuan 2016-02-13
  • 打赏
  • 举报
回复
关闭Aero,开启Win7 Basic主题就有了。 因为aero不会在每个窗口被遮住的时候删除DC中的数据
dustpg 2016-02-13
  • 打赏
  • 举报
回复
我记得拖动窗口,消息队列会阻塞,做游戏时,为此我还专门开一个线程来渲染避免拖动窗口时画面卡住。 遮盖,多“古老”的事情了,应该是是Vista新的“桌面组合”导致每个窗口都有独立的缓存所以无需再渲染。 Win7可以在系统设置里面关了再试试, Win10的这个设置选项都被移除了。 不过用了D2D之后都不用懒得响应WM_PAINT 消息了。用CPU渲染不复杂的场景比GDI又快又好有方便.

15,979

社区成员

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

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