关于隐藏对话框的问题

makeitandy 2003-12-05 11:01:38
我用SetWindowLong(*this, GWL_STYLE, Style | WS_VISIBLE)使对话框在初始运行时最小化了,但是每次最大最小化其他程序时对话框都会出现,而且调用任务管理器时也会出现,请问如何将对话框彻底隐藏?多谢了!
...全文
48 12 打赏 收藏 转发到动态 举报
写回复
用AI写文章
12 条回复
切换为时间正序
请发表友善的回复…
发表回复
phoenixli 2003-12-06
  • 打赏
  • 举报
回复
重载OnWindowPosChanged(),然后在里面加入::lpwndpos->flags = ~SWP_SHOWWINDOW
这样就可以彻底隐藏对话框了。
canjian 2003-12-06
  • 打赏
  • 举报
回复
模式对话框好像不能隐藏,必须使用非模式对话框
MarsZhangLing 2003-12-06
  • 打赏
  • 举报
回复
OK。
kisar 2003-12-06
  • 打赏
  • 举报
回复
更正:
2
在InitInstance()后面添加添加
……
kisar 2003-12-06
  • 打赏
  • 举报
回复
楼主,如果你是创建的基于对话框的MFC程序,可以试试我的:
1
注释掉CMyAPP的InitInstance()中的关于“模式对话框”代码。
/*
CMyDlg dlg;
m_pMainWnd = &dlg;
int nResponse = dlg.DoModal();
if (nResponse == IDOK)
{
// TODO: Place code here to handle when the dialog is
// dismissed with OK
}
else if (nResponse == IDCANCEL)
{
// TODO: Place code here to handle when the dialog is
// dismissed with Cancel
}

// Since the dialog has been closed, return FALSE so that we exit the
// application, rather than start the application's message pump.
return FALSE;
*/


2
在原来的dlg.DoModal()后面添加添加
CMyDlg * pd = new CMyDlg;
m_pMainWnd = pd;
pd->Create(IDD_MY_DIALOG);
return TRUE;


3
去掉对话框的Visual属性


4
为了显示实际已创建的对话框,在对话框类里的某一个地方调用:
ShowWindow(SW_SHOW);



5
注意:退出程序的时候(可以在ON_WM_CLOSE消息的OnClose()中或其它需要的地方),调用:
AfxGetApp()->m_pMainWnd ->DestroyWindow ();
MarsZhangLing 2003-12-05
  • 打赏
  • 举报
回复
楼上的说的对。但那样不好激活,所以最好不要采用。在生成对话框类对象的时候调用就可以了。
gjd111686 2003-12-05
  • 打赏
  • 举报
回复
OnInitDialog()中写ShowWindow(SW_HIDE)就可以.
不过激活不好办,最好放到任务栏.
makeitandy 2003-12-05
  • 打赏
  • 举报
回复
我用的直接生成的对话框程序怎么办?
wxb0419 2003-12-05
  • 打赏
  • 举报
回复
在虚函数DefWindowProc(UINT message, WPARAM wParam, LPARAM lParam)里加入
ShowWindow( SW_HIDE )就可以了
tolixiaohui 2003-12-05
  • 打赏
  • 举报
回复
prepare
or
init
makeitandy 2003-12-05
  • 打赏
  • 举报
回复
在哪儿?
flyelf 2003-12-05
  • 打赏
  • 举报
回复
ShowWindow(m_hWnd, SW_HIDE);

15,978

社区成员

发帖
与我相关
我的任务
社区描述
VC/MFC 界面
社区管理员
  • 界面
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧