编程论坛
注册
登录
编程论坛
→
VC++/MFC
[知识经验分享]全屏化/窗口化的一种实现方法
wsg1212
发布于 2015-05-06 00:21, 2300 次点击
我在编写自己的一款商业软件(518抽奖软件http://www.)的时候,需要全屏化/窗口化的功能,且窗口化的时候不能显示边框(将电脑屏幕投影到LED大屏幕),由于找不到合适的代码,自己写了一个,经过修改测试,效果还比较理想。
设置界面
只有本站会员才能查看附件,请
登录
源码一:设置后刷新
只有本站会员才能查看附件,请
登录
源码二:创建主窗口
只有本站会员才能查看附件,请
登录
源码三:主窗口激活/失活
只有本站会员才能查看附件,请
登录
3 回复
#2
AleTiff
2015-05-11 13:21
网上一大把呢,怎么会找不到?本质上就是函数 SetWindowLong 呢。
我知道你也无非是在运营一下你的产品,但我很不喜欢形成误导的内容。毕竟这里很多很多的初学者,我们可以不想说而不说,但一旦形成文字,就尽量不要引起误导。
#3
yangfrancis
2015-05-11 15:55
这么麻烦
到底哪句才是形成全屏的关键语句真该标出来。SetWindowPos不是设置窗口的叠放顺序吗?
#4
AleTiff
2015-05-12 10:22
嗯,是的,他使用的方法,不是全屏模式,是一个类似于放大视口的方案。
这种方案在单显示器环境下是可行的。SetWindowPos 有很多用途,叠放、位置、尺寸,都可以通过它来改变。在他上面的代码里,本质上他是通过获得当前显示器分辨率,然后把应用程序的客户窗口部分直接扩大为显示器分辨率,把标题条、边框等非客户区顶出显示区域来获得全屏效果。
通常我们认为,能解决问题的方案就是好方案,所以,这种方案在这种环境下是可用的,但它不是真全屏模式,要求必须是单一显示器并且没有其他会改变分辨率的应用在运行。
我之所以要指出混淆的地方,主要是,如果利用系统自己提供的方法,不仅代码更简单,适应性也会更好。仅此而已。
1