请各位大神帮忙解答:如何解决mfc子窗口移动时对主窗口的不断刷新

翔宇2012 2013-09-26 04:09:43
由来:我做了一个单文档用于画图,然后新建了一个线程进行画图操作,同时弹出一个调节绘画速度的对话框。
问题:当我移动对话框时,主窗口之前画的东西全被刷掉了,此现象在部分win7系统中不存在,在xp和一些win7系统中会很明显的出现;
解决历程:尝试了设置变量,在弹出对话框前后修改该变量的值,以实现对ondraw()控制,结果在移动对话框时会出现擦出背景的现象!
问题就是这样,希望各位大神能给于一定的帮助,谢谢……


经测试发现:1、移动子对话框并没有响应OnSize函数
2、每移动一次子对话框就会响应一次主文档的OnDraw()函数
...全文
276 8 打赏 收藏 转发到动态 举报
写回复
用AI写文章
8 条回复
切换为时间正序
请发表友善的回复…
发表回复
翔宇2012 2013-09-26
  • 打赏
  • 举报
回复
引用 7 楼 VisualEleven 的回复:
[quote=引用 5 楼 cwm_meng 的回复:] 阻止主窗口重画(即阻止响应OnDraw()函数)虽然不会出现刷屏的现象,但是子窗口所到之处全部给擦成背景色了, 我知道是模式对话框问题,可是我说的这个问题该如何解决呢?各位大神都遇到过吗? 坑爹的2012还不能在xp上装!
你是想移动子窗口的时候,不刷新主窗口啊?[/quote] 是的啊,可是不刷新主窗口又会出现擦出现象,不知道是不是win7和xp 的机制哪里不同?这事着实让人头疼啊!
Eleven 2013-09-26
  • 打赏
  • 举报
回复
引用 5 楼 cwm_meng 的回复:
阻止主窗口重画(即阻止响应OnDraw()函数)虽然不会出现刷屏的现象,但是子窗口所到之处全部给擦成背景色了, 我知道是模式对话框问题,可是我说的这个问题该如何解决呢?各位大神都遇到过吗? 坑爹的2012还不能在xp上装!
你是想移动子窗口的时候,不刷新主窗口啊?
翔宇2012 2013-09-26
  • 打赏
  • 举报
回复
都没人知道吗?还是问题太简单了?
翔宇2012 2013-09-26
  • 打赏
  • 举报
回复
阻止主窗口重画(即阻止响应OnDraw()函数)虽然不会出现刷屏的现象,但是子窗口所到之处全部给擦成背景色了, 我知道是模式对话框问题,可是我说的这个问题该如何解决呢?各位大神都遇到过吗? 坑爹的2012还不能在xp上装!
Eleven 2013-09-26
  • 打赏
  • 举报
回复
引用 3 楼 cwm_meng 的回复:
[quote=引用 1 楼 VisualEleven 的回复:] 每移动一次子对话框就会响应一次主文档的OnDraw()函数 ------------------------------------------ 这不是在刷新主窗口吗?
是在刷新主窗口啊,可是子窗口并没有响应OnSize函数[/quote] 你想在移动过程中响应?可以用WM_WINDOWPOSCHANGING
翔宇2012 2013-09-26
  • 打赏
  • 举报
回复
引用 1 楼 VisualEleven 的回复:
每移动一次子对话框就会响应一次主文档的OnDraw()函数 ------------------------------------------ 这不是在刷新主窗口吗?
是在刷新主窗口啊,可是子窗口并没有响应OnSize函数
lvxinjian_cn 2013-09-26
  • 打赏
  • 举报
回复
因为是模式对话框问题吧。
Eleven 2013-09-26
  • 打赏
  • 举报
回复
每移动一次子对话框就会响应一次主文档的OnDraw()函数 ------------------------------------------ 这不是在刷新主窗口吗?

15,979

社区成员

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

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