如何在程序运行时隐藏对话框?

ra3 2004-11-19 08:48:30
我在 OnCreate 函数和 OnInitDialog() 中都放置了 ShowWindow(SW_HIDE);
并且把对话框属性窗口中的 Visible 设置为 False 运行程序时,对话框还是显示。
真是没办法了 :(

我用的是(VC7)
...全文
180 9 打赏 收藏 转发到动态 举报
AI 作业
写回复
用AI写文章
9 条回复
切换为时间正序
请发表友善的回复…
发表回复
dropingleaf 2004-11-20
  • 打赏
  • 举报
回复
AfxGetApp->m_pMainWnd ->ShowWindow(SW_HIDE);
肯定能隐藏窗体
shenailin 2004-11-20
  • 打赏
  • 举报
回复
ShowWindow(FALSE);
成富 2004-11-20
  • 打赏
  • 举报
回复
修改了linxy2002(阿郎----酷爱编程) 的做法,在VC7.0下试验
CTestHideDialogDlg *dlg = new CTestHideDialogDlg();
m_pMainWnd = dlg;
if (dlg!=NULL) {
BOOL ret = dlg->Create(IDD_TESTHIDEDIALOG_DIALOG);
if(!ret){
AfxMessageBox("Error creating Dialog");
return FALSE;
}
dlg->ShowWindow(SW_HIDE);

}
else
AfxMessageBox("Error Creating Dialog Object");

注意的是需要在这段代码后面加上一个消息循环,否则程序会自动退出。
BOOL bRet;
MSG msg;

while ( (bRet = GetMessage(&msg, NULL, 0, 0)) != 0 )
{
if (bRet == -1 )
{
}
else if (msg.message == WM_COMMAND && msg.wParam == IDOK) {
break;
}
else if (!IsWindow(m_pMainWnd->m_hWnd) || !IsDialogMessage(m_pMainWnd->m_hWnd, &msg))
{
TranslateMessage(&msg);
DispatchMessage(&msg);
}
}
设置为按下对话框上的OK键时退出程序。
derrick0714 2004-11-19
  • 打赏
  • 举报
回复
一楼说得很对!
ra3 2004-11-19
  • 打赏
  • 举报
回复
新建一个 MFC 应用程序, 基于对话框, 是要把这个对话给隐藏。
是在程序运行后,暂时不显示该窗体。

ShowWindow(SW_HIDE); 可以隐藏窗体,但是要等到窗口出来后才行。

dhwwinner 2004-11-19
  • 打赏
  • 举报
回复
ShowWindow(SW_HIDE);
oyljerry 2004-11-19
  • 打赏
  • 举报
回复
ShowWindow(SW_HIDE);可以隐藏
linxy2002 2004-11-19
  • 打赏
  • 举报
回复
你可以按照如下方法使用:
CAaDlg *dlg = new CAaDlg();
dlg->Create(IDD_AA_DIALOG);
m_pMainWnd = dlg;
dlg->ShowWindow(SW_HIDE);
/* 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
}
*/
linxy2002 2004-11-19
  • 打赏
  • 举报
回复
楼主生成的是模式对话框还是非模式对话框啊?
我猜是模式的,如果是模式的,应该一开始没办法让它隐藏,试想一下,模式对话框一出现就隐藏了,而主窗口有没有焦点,那谁来响应你呢?呵呵
如果要实现隐藏,建议用非模式对话框,用ShowWindow(SW_HIDE);就可以了

16,548

社区成员

发帖
与我相关
我的任务
社区描述
VC/MFC相关问题讨论
社区管理员
  • 基础类社区
  • AIGC Browser
  • encoderlee
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告

        VC/MFC社区版块或许是CSDN最“古老”的版块了,记忆之中,与CSDN的年龄几乎差不多。随着时间的推移,MFC技术渐渐的偏离了开发主流,若干年之后的今天,当我们面对着微软的这个经典之笔,内心充满着敬意,那些曾经的记忆,可以说代表着二十年前曾经的辉煌……
        向经典致敬,或许是老一代程序员内心里面难以释怀的感受。互联网大行其道的今天,我们期待着MFC技术能够恢复其曾经的辉煌,或许这个期待会永远成为一种“梦想”,或许一切皆有可能……
        我们希望这个版块可以很好的适配Web时代,期待更好的互联网技术能够使得MFC技术框架得以重现活力,……

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