中国IT动力,最新最全的IT技术教程
最新100篇 | 推荐100篇 | 专题100篇 | 排行榜 | 搜索 | 在线API文档
首 页 | 程序开发 | 操作系统 | 软件应用 | 图形图象 | 网络应用 | 精文荟萃 | 教育认证 | 硬件维护 | 未整理篇 | 站长教程
ASP JS PHP工程 ASP.NET 网站建设 UML J2EESUN .NET VC VB VFP 网络维护 数据库 DB2 SQL2000 Oracle Mysql
服务器 Win2000 Office C DreamWeaver FireWorks Flash PhotoShop 上网宝典 CorelDraw 协议大全 网络安全 微软认证
硬件维护  CPU  主板  硬盘  内存  显卡  显示器  键盘鼠标  声卡音箱  打印机  机箱电源  BIOS  网卡  C#  Java  Delphi  vs.net2005
  当前位置:> 程序开发 > 编程语言 > Visual C++ > 综合文章
禁止WinCE3.0操作系统下的对话框全屏显示
作者:未知 时间:2003-02-26 12:12 出处:Blog 责编:chinaitpower
              摘要:禁止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联系吧:5261314@vip.sina.com

 

关闭本页
 
首页 | 投资与合作 | 服务条款 | 隐私政策 | 收藏本站 | 设为首页 | 新用户注册 | 免责声明 | 使用帮助
Copyright ©2005-2008 chinaitpower.com All rights reserved. www.chinaitpower.com 版权所有