怎样使对话框初始化时不可见?
我试过在OnInitDialog()下加上ShowWindow(SW_HIDE)但是无效不知道要加在哪比较合适我调试时发现好像OnInitDialog()函数结束时对话框...
我试过在OnInitDialog()下加上ShowWindow(SW_HIDE) 但是无效 不知道要加在哪比较合适
我调试时发现好像OnInitDialog()函数结束时对话框还没有显示 不知道之后是哪个函数将对话框显示出来 展开
我调试时发现好像OnInitDialog()函数结束时对话框还没有显示 不知道之后是哪个函数将对话框显示出来 展开
展开全部
先简单的跟你说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
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
展开全部
手工编辑.rc文件,找到对话框模板,修改STYLE那一行后面的内容
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
展开全部
上面两个都不行~
一楼的对Dialog的DoModal()是无效的
二楼的逻辑上有BUG,除非WM_SHOWWINDOW只发送一次,也就是最开始的那次
我看了下CWnd和CDialog的源代码,发现只要是DoModal()肯定会显示出来的
一楼的对Dialog的DoModal()是无效的
二楼的逻辑上有BUG,除非WM_SHOWWINDOW只发送一次,也就是最开始的那次
我看了下CWnd和CDialog的源代码,发现只要是DoModal()肯定会显示出来的
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
展开全部
添加 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);
}
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);
}
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
展开全部
mfc的对话框总是要显示出来的,你只能在他显示出来后再隐藏,因为它封装好了,要么你重载他的对话框
OnInitDialog()函数那时候还没产生对话框,当然不能用ShowWindow(SW_HIDE)
重载这个虚函数
PreCreateWindow(CREATESTRUCT& cs)
CREATESTRUCT
这个结构体对象里有个DWORD dwExStyle;
设置这个成员,改变窗口属性
OnInitDialog()函数那时候还没产生对话框,当然不能用ShowWindow(SW_HIDE)
重载这个虚函数
PreCreateWindow(CREATESTRUCT& cs)
CREATESTRUCT
这个结构体对象里有个DWORD dwExStyle;
设置这个成员,改变窗口属性
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询