禁止WinCE3.0操作系统下的对话框全屏显示

 

       现在市面上很多掌上电脑,如恒基伟业的掌上通、联想的天玑等内嵌的都是微软的WinCE操作系统,如果你买的是内嵌WinCE2.0操作系统的PDA,那也就算了,但如果买的是内嵌WinCE3.0操作系统的PDA,你就发现在这种操作系统下面所显示的对话框都是全屏!这种做法,不仅仅让我看的难受,而且在很多实际应用中都带来了不少的麻烦!!那么,对我们开发人员来说,如何在C编程中禁止对话框全屏显示呢?

       其实这在技术上实现并不难,只是书店里关于WinCE编程的书太少,就更别说WinCE3.0的编程说明了。要资料你就得从网上找!噢,一不小心就多说了几句废话……。好,我们言归正传吧!

       要禁止WinCE3.0操作系统下的对话框全屏显示,总的来说,有两种方法(使用的编程工具是微软发行的VC+ToolKitsEVC)。

第一种方法比较简单直接,就是使用微软偷偷在对话框类里加的一个变量m_bFullScreen,说到这个变量就忍不住要骂微软两句,好好的对话框,你硬要它全屏显示干啥!规定了全屏,又偏要藏一个控制全屏的变量,真是无聊!好了,气出完了,我们继续!这个变量是BOOL型的变量,当其为TRUE时,对话框就会全屏显示,默认当然就是TRUE了,所以我们要在对话框初始化之前,把这个变量设为FALSE。见下例(这里假设你的对话框类名为CXXXDlg):

BOOL CXXXDlg::OnInitDialog()

{

m_bFullScreen=FALSE;

CDialog::OnInitDialog();

…………

…………

…………

Return TRUE;

}

看,就是这么简单,编译一下,你的对话框就不再是全屏咯!

第二种方法就是在对话框的OnInitDialog()函数中去掉Cdialog::OnInitDialog()一行,换成以下语句:

 

       SHINITDLGINFO shidi;

       HWND hDlg = m_hWnd;

       shidi.dwMask = SHIDIM_FLAGS;

       shidi.dwFlags = SHIDIF_SIPDOWN;

       shidi.hDlg = hDlg;

       SHInitDialog(&shidi);

 

这样做,就相当于自己创建一个新类型的对话框,该结构的参数可参考EVCMSDN说明。

       以上就简单介绍了如何禁止WinCE3.0操作系统下的对话框全屏显示,但在第一种方法中,若在程序运行过程中,弹出了虚拟键盘后,对话框将又再全屏显示。因此,我们必须对对话框的WM_SETTINGCHANGE消息进行处理。

       首先,我们需在CXXXDlg.h中加入函数声明:

afx_msg OnSettingChange();

       跟着,我们要在CXXXDlg.cpp中加入函数:

int CXXXDlg::OnSettingChange()

{

       return 1;

}

       该函数什么都不干,只要返回1就行了。

       最后,就是在消息表中添加ON_WM_SETTINGCHANGE()了。

       好了,现在可以再次运行你的对话框程序了,怎样?解决了你的问题了吗?如果还有什么疑问,那就Email联系吧:19776655@163.com

 

CCF大数据与计算智能大赛-面向电信行业存量用户的智能套餐个性化匹配模型联通赛-复赛第二名-【多分类,embedding】.zip项目工程资源经过严格测试可直接运行成功且功能正常的情况才上传,可轻松复刻,拿到资料包后可轻松复现出一样的项目,本人系统开发经验充足(全领域),有任何使用问题欢迎随时与我联系,我会及时为您解惑,提供帮助。 【资源内容】:包含完整源码+工程文件+说明(如有)等。答辩评审平均分达到96分,放心下载使用!可轻松复现,设计报告也可借鉴此项目,该资源内项目代码都经过测试运行成功,功能ok的情况下才上传的。 【提供帮助】:有任何使用问题欢迎随时与我联系,我会及时解答解惑,提供帮助 【附带帮助】:若还需要相关开发工具、学习资料等,我会提供帮助,提供资料,鼓励学习进步 【项目价值】:可用在相关项目设计中,皆可应用在项目、毕业设计、课程设计、期末/期中/大作业、工程实训、大创等学科竞赛比赛、初期项目立项、学习/练手等方面,可借鉴此优质项目实现复刻,设计报告也可借鉴此项目,也可基于此项目来扩展开发出更多功能 下载后请首先打开README文件(如有),项目工程可直接复现复刻,如果基础还行,也可在此程序基础上进行修改,以实现其它功能。供开源学习/技术交流/学习参考,勿用于商业用途。质量优质,放心下载使用。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值