3605|5

71

帖子

0

TA的资源

一粒金砂(初级)

楼主
 

两个程序相互切的时候怎么会有白屏? [复制链接]

两个程序相互切的时候怎么会有白屏?
程序1:
我是用 CreateWindowEx(WS_EX_TOPMOST, szWindowClass, szTitle, WS_POPUP | WS_WYWMENU,
                             0, 0, LCD_XSIZE, LCD_YSIZE, NULL, NULL, hInstance, NULL);
的windows API建立窗口的,不用MFC的任何东西,并且是用DC去画的屏幕的;

程序2:
我也是用 CreateWindowEx(WS_EX_TOPMOST, szWindowClass, szTitle, WS_POPUP | WS_WYWMENU,
                             0, 0, LCD_XSIZE, LCD_YSIZE, NULL, NULL, hInstance, NULL);
的windows API建立窗口的,不用MFC的任何东西,但是画的机制是基本于DirectDraw的

以上两个程序是基本同一个初始点,并且在小一样的,在特定情况下我需要两个程序在前后台相互切换,
但是有个问题就是就是两个程序在前后台相互切换时会出现一小会的白屏,在PC上闪的快一点,在WinCE上的白屏时间让我受不了,
所以我在PC上用随便windows的两个窗口前后台相互切,发现并不会出现白屏,只是一个窗口在另一个窗口上拖动时另一个窗口的刷新会稍微慢一点,
我的两个程序并不需要拖动,在起始点以及大小一样的情况下我只需要两个程序在前后台相互切换,可是有白屏,有谁知道原因吗?
会是我建立窗口时的参数的原因吗?为什么windows窗口相互切不会有白屏或者看着不舒服的地方?

最新回复

因为窗体被置顶后,有一个自绘制的过程。默认状态下,会擦除窗体的背景,然后再绘制。 一般擦除窗体的背景的动作,会引起闪动。  详情 回复 发表于 2008-12-17 09:21
点赞 关注

回复
举报

108

帖子

0

TA的资源

一粒金砂(中级)

沙发
 
处理刷背景的消息,直接返回TRUE
 
 

回复

62

帖子

0

TA的资源

一粒金砂(初级)

板凳
 
不是你参数的问题而是你HIDE的时间不对,你应该等你需要显示的窗口已经得到FOCUS了,再把之前的HIDE掉。
 
 
 

回复

89

帖子

0

TA的资源

一粒金砂(初级)

4
 
我是用setforground函数去设置的    没有用hide的
所以能在程序1中设置程序2的foreground 或者程序2中设置程序1的forground,
 
 
 

回复

88

帖子

0

TA的资源

一粒金砂(初级)

5
 
开发应用有意思,但我不懂,帮你顶
 
 
 

回复

56

帖子

0

TA的资源

一粒金砂(初级)

6
 
因为窗体被置顶后,有一个自绘制的过程。默认状态下,会擦除窗体的背景,然后再绘制。

一般擦除窗体的背景的动作,会引起闪动。
 
 
 

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

随便看看
查找数据手册?

EEWorld Datasheet 技术支持

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

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