主题:[讨论]请问,如何让子对话框一弹出来就是全屏呢?
zhoujun
[专家分:0] 发布于 2008-08-17 17:09:00
我用MFC写了一个基于对话框的程序,我添加了两个对话框
一个是主对话框CMyDlg,一个是子对话框CChirDlg,
在主对话框CMyDlg中我添加了一个按钮控件,消息处理函数OnFangdadianlu()如下:
void CMyDlg::OnFangdadianlu()
{
// TODO: Add your control notification handler code here
CChirDlg ChirDlg; //声明子对话框
NEICUNXILOU.DoModal();//调用子对话框
}
请问还要添加什么代码才能让子对话框一弹出来就是全屏呢??
回复列表 (共10个回复)
沙发
gaga4000 [专家分:40] 发布于 2008-08-18 10:59:00
ModifyStyle(WS_CAPTION,0,0);
SendMessage(WM_SYSCOMMAND, SC_MAXIMIZE,0);
把这两句加到你想要全屏的对话框的oninintiadialog()初始化函数中就可以了,想保留标题栏的话,屏蔽掉第一句话就行了
板凳
zhoujun [专家分:0] 发布于 2008-08-18 13:05:00
但是子窗口里没有oninintiadialog()初始化函数啊,
只有主窗口里才有
3 楼
gaga4000 [专家分:40] 发布于 2008-08-18 14:44:00
你打开rc资源,选择子对话框,ctrl+w 在添加消息中添加 wm_oninintial消息就可以生成这个函数了,然后把代码添加到其中就可以了
4 楼
zhoujun [专家分:0] 发布于 2008-08-18 20:09:00
知道啊,我也是这样想的:
但是Message map里面的子对话框的Message里面没有 wm_oninintial消息啊,
怎么办呢?
5 楼
gaga4000 [专家分:40] 发布于 2008-08-19 08:38:00
不好意思,估计是没跟你说确切,
是WM_INITDIALOG, 仔细找下
我也是菜鸟一个哈哈
6 楼
zhoujun [专家分:0] 发布于 2008-08-19 20:44:00
这个也没有哦,
只有 WM_ICONERASEBKGND
WM_INITNENU
WM_INITMENUPOPUP
WM_INITDIALOG确实找不到.
7 楼
gaga4000 [专家分:40] 发布于 2008-08-20 08:33:00
不会吧,我上面都有啊,感觉你要实在找不到的话,建议你重装VC6.0
8 楼
zhoujun [专家分:0] 发布于 2008-08-20 23:57:00
哦,谢谢了啊,我试一下.
9 楼
posechang [专家分:100] 发布于 2008-08-26 17:59:00
GetWindowLong()函数不知道行不行?据说这个函数很强的说,我具体没用过。
10 楼
zhoujun [专家分:0] 发布于 2008-09-02 00:26:00
好,我试试
我来回复