5129|15

67

帖子

0

TA的资源

一粒金砂(初级)

楼主
 

双缓存的问题? [复制链接]

在一个对话框中,有几个CButton按钮和一个CListCtrl,每次对话框显示出来的时候,总是可以在背景图片是看到CButton的位置是先是白的,后来才把Button贴上去,我想让背景图片和CButton还有CListCtrl同时出现,应该用双缓存的方法可以做,请那位指点一下在操作上怎么做?

最新回复

Roy_ly ,你说自己处理wm_paint,这个是对话框的还是控件的?如果是对话框的要怎么处理控件的背景? nick_TS16949 :直接在创建窗口的时候背景刷设置为NULL不能解决。试过了。 BEYONDMA :不要重绘背景。再试下。 我是自己画的控件,可是把对话框的背景画出之后,感觉按钮出来有先后顺序。 我是想用一种方法,在对话框的OnEraseBkgnd 中,一次的将对话框的背景和按追钮的背景一次性的画出。这样效果会比较好。可是这要怎么做?  详情 回复 发表于 2009-6-3 18:46
点赞 关注

回复
举报

76

帖子

0

TA的资源

一粒金砂(初级)

沙发
 
这好像不是双缓冲能解决的问题,因为控件的绘制过程是CE系统完成的。

可以考虑先处理控件擦除背景的消息,直接return TRUE试试
 
 

回复

60

帖子

0

TA的资源

一粒金砂(初级)

板凳
 
关注
 
 
 

回复

62

帖子

0

TA的资源

一粒金砂(初级)

4
 
可是我在DrawItem中就把按钮上的图片画出来了。在OnEraseBkgnd的时候好像不要做什么了。CBUTTON是怎么照别人的类写的一个。
 
 
 

回复

66

帖子

0

TA的资源

一粒金砂(初级)

5
 
OnEraseBkgnd 默认(不处理时)是擦除控件的背景
 
 
 

回复

76

帖子

0

TA的资源

一粒金砂(初级)

6
 
我将OnEraseBkgnd 中直接return true,或者在OnEraseBkgnd 中重画button上的图片,再return true,还是一样的。
 
 
 

回复

72

帖子

0

TA的资源

一粒金砂(初级)

7
 
寻找解决方法中...
 
 
 

回复

79

帖子

0

TA的资源

一粒金砂(初级)

8
 
好像中控件比对话框的背景慢画一样。我单步走的时候,等对话框的OnEraseBkgnd 画完了,控件还没有画完。
 
 
 

回复

69

帖子

0

TA的资源

一粒金砂(初级)

9
 
我要让对话框的背景和控件上的背景图片同时画出来,有没有什么好的方法?
 
 
 

回复

69

帖子

0

TA的资源

一粒金砂(初级)

10
 
给LZ一个技巧,但这种方法不好,
如果你的软件的界面是固定大小的,而且按钮等控件的位置和大小也是固定的,那么你可以先在你的背景图片上,在相应的控件的位置上放上这些按钮等控件的造型,也就是做一张有控件造型的背景图,这个背景图要和你的软件界面一样(或者大致相似就可以)。然后记住在需要重画背景的时候,要先把按钮等这些控件设置为不可见的状态,然后你贴背景图,贴好背景图后再把控件的属性设置为可以见就可以了,比如程序启动的时候,你就要先把控件的属性设置为不可见,在OnPaint或其它地方贴完背景后,把这些控件设置为可见,这样就不会有你说的那个白背景的现象了。但这样做就有很多东西被固定死了...
 
 
 

回复

48

帖子

0

TA的资源

一粒金砂(初级)

11
 
lailzhihou :这样做是看不到那个白色了。谢谢你!
如果对话框的背景图片和按钮上的背景图片如果不是很像的话,就有点明显先看到先画背景再画按钮了。这是在WINCE下跑的,当然没有PC机的那么快。
我想找一种方法,将对话框的背景图片和按钮上的图片同时画出,这样就看起来就像是同时画出的了。不知道这样做能不能实现?
 
 
 

回复

64

帖子

0

TA的资源

一粒金砂(初级)

12
 
要想同时画出来,使用控件的方法我不知道可不可以,反正我是不会。
但你可以不要使用系统的控件,比如按钮一个按钮,你在相应的地方检测一个鼠标的down和up就能够判断是否有单击或双击等等了,这样做就可以一次性的画出来,
 
 
 

回复

53

帖子

0

TA的资源

一粒金砂(初级)

13
 
自画控件吧,不要使用系统本身的控件,这样不好操作。
如果要用系统的控件,那就用setwindowlong对控件子类化一下,
自己写消息处理函数,自己处理wm_paint
 
 
 

回复

65

帖子

0

TA的资源

一粒金砂(初级)

14
 
4楼的方法可行,或者直接在创建窗口的时候背景刷设置为NULL
 
 
 

回复

74

帖子

0

TA的资源

一粒金砂(初级)

15
 
不要重绘背景。再试下。
 
 
 

回复

81

帖子

0

TA的资源

一粒金砂(初级)

16
 
Roy_ly ,你说自己处理wm_paint,这个是对话框的还是控件的?如果是对话框的要怎么处理控件的背景?
nick_TS16949 :直接在创建窗口的时候背景刷设置为NULL不能解决。试过了。
BEYONDMA :不要重绘背景。再试下。


我是自己画的控件,可是把对话框的背景画出之后,感觉按钮出来有先后顺序。
我是想用一种方法,在对话框的OnEraseBkgnd 中,一次的将对话框的背景和按追钮的背景一次性的画出。这样效果会比较好。可是这要怎么做?
 
 
 

回复
您需要登录后才可以回帖 登录 | 注册

随便看看
查找数据手册?

EEWorld Datasheet 技术支持

相关文章 更多>>
关闭
站长推荐上一条 1/8 下一条

 
EEWorld订阅号

 
EEWorld服务号

 
汽车开发圈

About Us 关于我们 客户服务 联系方式 器件索引 网站地图 最新更新 手机版

站点相关: 国产芯 安防电子 汽车电子 手机便携 工业控制 家用电子 医疗电子 测试测量 网络通信 物联网

北京市海淀区中关村大街18号B座15层1530室 电话:(010)82350740 邮编:100190

电子工程世界版权所有 京B2-20211791 京ICP备10001474号-1 电信业务审批[2006]字第258号函 京公网安备 11010802033920号 Copyright © 2005-2025 EEWORLD.com.cn, Inc. All rights reserved
快速回复 返回顶部 返回列表