请教一个界面上控件重绘顺序的问题!

ark21 2010-07-27 10:37:43
程序的DIALOG 里有一个PICTURE CONTROL 控件,而这个PICTURE CONTROL上面(在PICTURE CONTROL的范围内)有好几个static静态文本控件和几个EDIT控件。

我是在DIALOG的 OnPaint里为picture control加载图片的。 初始运行的时候一切显示正常,但只要我稍微动一下窗口,picture control上面的静态文本控件和EDIT控件都看不到了。 我想是被加载的图片覆盖了! 或者说是picture control重绘了,但是文本框没有重绘。或者重绘的顺序不同,把其盖住了。我只是猜想,我也不知道具体原因。 我试着每次移动窗口,和窗口部分被遮挡之后,用Invalidate(FALSE)重绘所有区域。 但会出现闪烁! 其实我这个程序是全屏执行的,因此移动和被覆盖的机会很少,这些都不会太影响正常使用,但我还是希望能将这些问题解决了。 希望知道的帮帮我。先谢过了。

还有个问题:picture上面的EDIT控件显示数据在不停的更新,比如从1,2 ,3。。。。一直在变动,可它总是不擦除以前显示留下的数据。这个必须解决?请高手帮忙。
我也看过双缓冲解决闪的问题,可具体怎么实现,谁可以可以示例代码?谢谢了。 不知道说明白没有?嘿嘿!
...全文
356 19 打赏 收藏 转发到动态 举报
写回复
用AI写文章
19 条回复
切换为时间正序
请发表友善的回复…
发表回复
xxd_qd 2010-07-28
  • 打赏
  • 举报
回复
仅仅是控件的位置相互重叠?那不可能出现这样的问题。不信你把两个控件的位置挪开一下试试。再要么你就新写一个程序,里面的dialog只有一个Edit控件,然后在OnInitDialog里设一个Timer,在OnTimer里不断给Edit控件中的值加1再UpdateData(FALSE),你再看看会不会有什么以前的痕迹。
ark21 2010-07-28
  • 打赏
  • 举报
回复
[Quote=引用 12 楼 xxd_qd 的回复:]
正常的Edit控件在其内容变化的时候不可能保留以前的痕迹,你是不是对这个控件做了什么手脚?比如重载了OnEraseBkgnd之类。
[/Quote]

没有哈,不过我是把这个EDIT控件放在picture control控件上面的。
xxd_qd 2010-07-28
  • 打赏
  • 举报
回复
正常的Edit控件在其内容变化的时候不可能保留以前的痕迹,你是不是对这个控件做了什么手脚?比如重载了OnEraseBkgnd之类。
ark21 2010-07-28
  • 打赏
  • 举报
回复
嘿嘿,谢谢各位,我已经知道是什么问题了。解决了。!
xxd_qd 2010-07-28
  • 打赏
  • 举报
回复
把你对话框的头文件贴上来看看。
na_he 2010-07-28
  • 打赏
  • 举报
回复
先绘制图片,在绘制其他control.
ark21 2010-07-28
  • 打赏
  • 举报
回复
我知道了,是因为我重载了OnCtlColor 。 但我要修改EDIT(read only的)的背景色,和字体显示颜色,所以才重载了OnCtlColor,那我现在该怎么处理呢?

ark21 2010-07-28
  • 打赏
  • 举报
回复
我试了,真的好像不关重叠的事呢?
以前经常用EDIT都没出现过这个问题,可能是因为什么原因引起的呢?
  • 打赏
  • 举报
回复
Dialog加上WS_CLIPCHILDREN样式就OK了
xxd_qd 2010-07-27
  • 打赏
  • 举报
回复
在OnInitDialog里为picture control加载图片。
hurryboylqs 2010-07-27
  • 打赏
  • 举报
回复
刷新局部
把父窗口设置成具有WS_CLIPCHILDREN 样式
ark21 2010-07-27
  • 打赏
  • 举报
回复
我想过在UpdateData()的时候, 重绘EDIT控件区域,不知道是否可行?但给我感觉这种方法怪怪的。有没有其它更好的办法?
ark21 2010-07-27
  • 打赏
  • 举报
回复
谢谢各位,我的第一个问题已经在各位的提示下解决了!
在OnInitDialog里加载就可以了。

但是另一个问题:就是picture control上的EDIT控件关联的变量是在不停的变化的,每次变化都会保留以前的痕迹, 不能擦除,根本看不出显示的数据是什么。
请问怎么解决?
caocheng8230 2010-07-27
  • 打赏
  • 举报
回复
同求解决方法
lesgo 2010-07-27
  • 打赏
  • 举报
回复
试一下Tab Order,改一下各控件的次序
hurryboylqs 2010-07-27
  • 打赏
  • 举报
回复
你怎么加载?代码
ark21 2010-07-27
  • 打赏
  • 举报
回复
[Quote=引用 2 楼 xxd_qd 的回复:]
在OnInitDialog里为picture control加载图片。
[/Quote]

我把加载图片的代码放在OnInitDialog里,就显示不出来了呢?
ark21 2010-07-27
  • 打赏
  • 举报
回复
我加了,但是好像问题更严重了呢。很多地方都不显示了。
ark21 2010-07-27
  • 打赏
  • 举报
回复
[Quote=引用 1 楼 hurryboylqs 的回复:]
刷新局部
把父窗口设置成具有WS_CLIPCHILDREN 样式
[/Quote]

如何设置呢? 就是在DIALOG的属性中将 clip children 设置为ture 吗?

15,979

社区成员

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

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