5578|15

80

帖子

0

TA的资源

一粒金砂(初级)

楼主
 

wince下MFC问题一 [复制链接]

先显示一个对话框,用户点击button控件,跳到另一个对话框,对话框都是全屏,都包含button控件,用ShowWindow()或domodal()来显示。

这样有个问题,当跳到另一个对话框时,对话框的背景先显示,然后再显示控件,很明显的看到这个情景,而不是一起显示。

这跟系统运行速度有关。比较慢。

但就现有条件下,用MFC,如何消除前面的问题?

最新回复

基本就是这样  详情 回复 发表于 2009-11-30 18:39
点赞 关注

回复
举报

53

帖子

0

TA的资源

一粒金砂(初级)

沙发
 
别的类似程序,存在同样的问题吗?
 
 

回复

78

帖子

0

TA的资源

一粒金砂(初级)

板凳
 
引用 1 楼 yashi 的回复:
别的类似程序,存在同样的问题吗?

是的。

我对MFC的显示原理不是很清楚。不知道能不能用隔屏技术处理,也不知道怎么弄?

---MFC新手
 
 
 

回复

74

帖子

0

TA的资源

一粒金砂(初级)

4
 
1.一定要在OnEraseBkgnd返回TRUE,所有要做的事情都在OnPaint中做
2.一定要使用双缓冲技术
3.您如果实现了前两种,问题还是不一定解决:(,但比您现在会有一些改观

我目前知道完全解决这个问题有两种方法:
1.使用direct ui
2.研究GetDCEx

上面仅仅是个人意见,还希望大家拍砖
 
 
 

回复

79

帖子

0

TA的资源

一粒金砂(初级)

5
 
这个问题很深奥的,也是非常难以解决的
 
 
 

回复

71

帖子

0

TA的资源

一粒金砂(初级)

6
 
引用 4 楼 panghuang 的回复:
这个问题很深奥的,也是非常难以解决的



如果对MFC的显示机制和过程很清楚的话,应该能找到症结。

对话框 调用 对话框 ,如何实现双缓冲?
 
 
 

回复

66

帖子

0

TA的资源

一粒金砂(初级)

7
 
引用 5 楼 wohuazhen 的回复:
引用 4 楼 panghuang 的回复:
这个问题很深奥的,也是非常难以解决的



如果对MFC的显示机制和过程很清楚的话,应该能找到症结。

对话框 调用 对话框 ,如何实现双缓冲?

不是MFC的机制,而是WinCE的窗口机制,这才是最难的,MFC有源代码,好说!!
 
 
 

回复

68

帖子

0

TA的资源

一粒金砂(初级)

8
 
楼主,我建议你使用WIN32 API试试看。WIN32 API的运行效率比MFC好很多。
而且,我想问问你目前的CPU的主频和BUS频率分别是多少呀?
 
 
 

回复

68

帖子

0

TA的资源

一粒金砂(初级)

9
 
引用 3 楼 wceui 的回复:
1.一定要在OnEraseBkgnd返回TRUE,所有要做的事情都在OnPaint中做
2.一定要使用双缓冲技术
3.您如果实现了前两种,问题还是不一定解决:(,但比您现在会有一些改观

我目前知道完全解决这个问题有两种方法:
1.使用direct ui
2.研究GetDCEx

上面仅仅是个人意见,还希望大家拍砖


楼主可以试试这个,
由于点击按钮后需要创建一个窗口,创建一个窗口本身就比较慢,而且还是在Ce的系统上,给楼主个建议,考虑下这样做:
你切换窗口应该是为了不同的应用界面,所以可以考虑把所有的控件都放到一个界面上,然后把当前界面要显示的控件显示出来,不是当前界面的隐藏掉,当点击按钮,需要切换到下一个界面的时候,就把下一个界面的控件显示出来,隐藏其它的控件。
 
 
 

回复

77

帖子

0

TA的资源

一粒金砂(初级)

10
 

楼主可以试试这个,
由于点击按钮后需要创建一个窗口,创建一个窗口本身就比较慢,而且还是在Ce的系统上,给楼主个建议,考虑下这样做:
你切换窗口应该是为了不同的应用界面,所以可以考虑把所有的控件都放到一个界面上,然后把当前界面要显示的控件显示出来,不是当前界面的隐藏掉,当点击按钮,需要切换到下一个界面的时候,就把下一个界面的控件显示出来,隐藏其它的控件。


这种方法,你试过吗?呵呵。
 
 
 

回复

70

帖子

0

TA的资源

一粒金砂(初级)

11
 
如果控件较多的话就很麻烦了哦。。。
我的程序也存在这样的问题,可以考虑试试换一个处理速度快一些的CPU
引用 9 楼 wohuazhen 的回复:
楼主可以试试这个,
由于点击按钮后需要创建一个窗口,创建一个窗口本身就比较慢,而且还是在Ce的系统上,给楼主个建议,考虑下这样做:
你切换窗口应该是为了不同的应用界面,所以可以考虑把所有的控件都放到一个界面上,然后把当前界面要显示的控件显示出来,不是当前界面的隐藏掉,当点击按钮,需要切换到下一个界面的时候,就把下一个界面的控件显示出来,隐藏其它的控件。


这种方法,你试过吗?呵呵。
 
 
 

回复

69

帖子

0

TA的资源

一粒金砂(初级)

12
 
哎,顶起,正在学习中
 
 
 

回复

54

帖子

0

TA的资源

一粒金砂(初级)

13
 
建议直接用windows SDK.
 
 
 

回复

71

帖子

0

TA的资源

一粒金砂(初级)

14
 
楼主用双缓存呢,全部东西一起给他显示出来。双缓存google一下,很多的
 
 
 

回复

73

帖子

0

TA的资源

一粒金砂(初级)

15
 
代理微软产品 wince 6.0 R3版本的开发工具,技术支持,LICENCE销售
科通通信,网站:WWW.COMTECH.COM.CN
联系人何先生:13631588186
 
 
 

回复

52

帖子

0

TA的资源

一粒金砂(初级)

16
 
引用 3 楼 wceui 的回复:
1.一定要在OnEraseBkgnd返回TRUE,所有要做的事情都在OnPaint中做
2.一定要使用双缓冲技术
3.您如果实现了前两种,问题还是不一定解决:(,但比您现在会有一些改观

我目前知道完全解决这个问题有两种方法:
1.使用direct ui
2.研究GetDCEx

上面仅仅是个人意见,还希望大家拍砖



基本就是这样
 
 
 

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

随便看看
查找数据手册?

EEWorld Datasheet 技术支持

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

 
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
快速回复 返回顶部 返回列表