怎样使对话框初始化时不可见?

我试过在OnInitDialog()下加上ShowWindow(SW_HIDE)但是无效不知道要加在哪比较合适我调试时发现好像OnInitDialog()函数结束时对话框... 我试过在OnInitDialog()下加上ShowWindow(SW_HIDE) 但是无效 不知道要加在哪比较合适
我调试时发现好像OnInitDialog()函数结束时对话框还没有显示 不知道之后是哪个函数将对话框显示出来
展开
 我来答
14566666
2008-04-21 · TA获得超过1382个赞
知道小有建树答主
回答量:905
采纳率:50%
帮助的人:269万
展开全部
先简单的跟你说3中方法吧:

1.响应对话框OnPaint()消息:

添加:ShowWindow(SW_HIDE);让对话框不画出来

2.在OnInitDialog()添加如下代码

{

ModifyStyleEx(WS_EX_APPWINDOW,WS_EX_TOOLWINDOW);

WINDOWPLACEMENT wp;

wp.length=sizeof(WINDOWPLACEMENT);

wp.flags=WPF_RESTORETOMAXIMIZED;

wp.showCmd=SW_HIDE;

SetWindowPlacement(&wp);

}//改变窗口显示属性.

3.在OnInitDialog()添加如下代码

{
MoveWindow(0,0,0,0);
ShowWindow(SW_HIDE);
ModifyStyleEx(WS_EX_APPWINDOW, WS_EX_TOOLWINDOW);

}隐藏界面

方法还有很多很多:

具体见这里:

http://hi.baidu.com/xydjh/blog/item/a956c3dec603be5bccbf1a80.html
wawoo2007
2008-04-20 · TA获得超过626个赞
知道小有建树答主
回答量:465
采纳率:0%
帮助的人:634万
展开全部
手工编辑.rc文件,找到对话框模板,修改STYLE那一行后面的内容
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
帐号已注销
2008-04-20 · TA获得超过215个赞
知道答主
回答量:347
采纳率:0%
帮助的人:0
展开全部
上面两个都不行~
一楼的对Dialog的DoModal()是无效的
二楼的逻辑上有BUG,除非WM_SHOWWINDOW只发送一次,也就是最开始的那次
我看了下CWnd和CDialog的源代码,发现只要是DoModal()肯定会显示出来的
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
6908270270
2008-04-20 · TA获得超过3427个赞
知道小有建树答主
回答量:1988
采纳率:0%
帮助的人:700万
展开全部
添加 WM_SHOWWINDOW 的消息映射
if ( GetStyle() & WS_VISIBLE )
{
CDialog::OnShowWindow(bShow, nStatus);
}
else
{
long Style = ::GetWindowLong(*this, GWL_STYLE);
::SetWindowLong(*this, GWL_STYLE, Style | WS_VISIBLE);
CDialog::OnShowWindow(SW_HIDE, nStatus);
}
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
gm7996
2008-04-20 · TA获得超过1199个赞
知道小有建树答主
回答量:645
采纳率:100%
帮助的人:543万
展开全部
mfc的对话框总是要显示出来的,你只能在他显示出来后再隐藏,因为它封装好了,要么你重载他的对话框

OnInitDialog()函数那时候还没产生对话框,当然不能用ShowWindow(SW_HIDE)

重载这个虚函数
PreCreateWindow(CREATESTRUCT& cs)

CREATESTRUCT
这个结构体对象里有个DWORD dwExStyle;
设置这个成员,改变窗口属性
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
收起 更多回答(3)
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

下载百度知道APP,抢鲜体验
使用百度知道APP,立即抢鲜体验。你的手机镜头里或许有别人想知道的答案。
扫描二维码下载
×

类别

我们会通过消息、邮箱等方式尽快将举报结果通知您。

说明

0/200

提交
取消

辅 助

模 式