在启动前隐藏一个MFC DoModal对话框

Posted zcube

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了在启动前隐藏一个MFC DoModal对话框相关的知识,希望对你有一定的参考价值。

实现在启动对话框前将DoModal对话框隐藏掉

1、在对话框中添加WM_WINDOWPOSCHANGING消息处理

BEGIN_MESSAGE_MAP(CMyDialog, CDialog)
    ON_WM_WINDOWPOSCHANGING()
END_MESSAGE_MAP()

BOOL CHiddenDialog::OnInitDialog()

    CDialog::OnInitDialog();
    m_visible = FALSE;

    return TRUE;


void CHiddenDialog::OnWindowPosChanging(WINDOWPOS FAR* lpwndpos) 

    if (!m_visible)
        lpwndpos->flags &= ~SWP_SHOWWINDOW;

    CDialog::OnWindowPosChanging(lpwndpos);
2、调用ShowWindows()重新显示对话框

m_visible = TRUE;
ShowWindow(SW_SHOW);


参考链接:

http://stackoverflow.com/questions/8255106/hiding-an-mfc-dialog-box

http://forums.codeguru.com/showthread.php?231065-MFC-Dialog-How-to-start-your-dialog-application-in-hidden-mode


以上是关于在启动前隐藏一个MFC DoModal对话框的主要内容,如果未能解决你的问题,请参考以下文章

MFC如何弹出新对话框的同时隐藏当前对话框并且关闭新对话框后出现之前对话框

MFC(C++)CDialog DoModal()没有按预期工作

MFC DoModal 对话框

从 CDialog 派生的对话框在 DoModal (MFC/C++) 之后返回 -1

MFC DoModal对话

MFC Domodal 返回-1的一种情况