MFC 点击按钮显示和隐藏对话框


例子为非模态对话框,ID为ID_MODELESS,为其创建一个类:CModelessDlg

在父对话框(ID_FIRSTUI)的相应按钮写上事件(以IDCANCEL为例):

void CFirstUIDlg::OnBnClickedCancel()
{    
    if (pDlg == NULL)
    {
        // 指针为空则创建非模态对话框并显示
        pDlg = new CModelessDlg;
        pDlg->Create(IDD_MODELESS, this);
        pDlg->ShowWindow(SW_SHOW);
    }
    else
    {
        // 判断对话框可见状态,可见点击后隐藏,隐藏则点击可见
        BOOL bVisible = pDlg->IsWindowVisible();
        int nCmdShow = bVisible ? SW_HIDE : SW_SHOW;
        pDlg->ShowWindow(nCmdShow);
    }
}

注:

  1、pDLG在父对话框的头文件中定义CModeless *pDlg;
  2、使用IsWindowVisible()时,需要指明对象。否则会导致指向当前对话框。

 


免责声明!

本站转载的文章为个人学习借鉴使用,本站对版权不负任何法律责任。如果侵犯了您的隐私权益,请联系本站邮箱yoyou2525@163.com删除。



 
粤ICP备18138465号  © 2018-2025 CODEPRJ.COM