看,就是这么简单,编译一下,你的对话框就不再是全屏咯!
第二种方法就是在对话框的oninitdialog()函数中去掉cdialog::oninitdialog()一行,换成以下语句:
shinitdlginfo shidi;
hwnd hdlg = m_hwnd;
shidi.dwmask = shidim_flags;
shidi.dwflags = shidif_sipdown;
shidi.hdlg = hdlg;
shinitdialog(&shidi);
这样做,就相当于自己创建一个新类型的对话框,该结构的参数可参考evc的msdn说明。
以上就简单介绍了如何禁止wince3.0操作系统下的对话框全屏显示,但在第一种方法中,若在程序运行过程中,弹出了虚拟键盘后,对话框将又再全屏显示。因此,我们必须对对话框的wm_settingchange消息进行处理。
首先,我们需在cxxxdlg.h中加入函数声明:
afx_msg onsettingchange();
跟着,我们要在cxxxdlg.cpp中加入函数:
int cxxxdlg::onsettingchange()
{
return 1;
}
该函数什么都不干,只要返回1就行了。