【C++】【MFC】模態和非模態對話方塊

VanGoghpeng發表於2024-05-30

1、模態對話方塊, 開啟後限制操作父視窗

void CMFCApplication1Dlg::OnBnClickedButton2()
{
    // TODO: 在此新增控制元件通知處理程式程式碼
    CDlgExeC exec;
    exec.DoModal();
}

呼叫DoModal即可完成。

2、非模態對話方塊,開啟後對任意視窗都無限制

void CMFCApplication1Dlg::OnBnClickedButton1()
{
    // TODO: 在此新增控制元件通知處理程式程式碼
    CDlgs s = new CDlgs;
    s.Create(IDD_SHOW);
    s.ShowWindow(SW_SHOW);
}

  針對非模態對話方塊,上述回撥函式會出現視窗一閃而過,其因為函式的結束而介紹對話方塊,所以需要將定義轉寫至對應標頭檔案當中,且建立視窗轉寫至OnInitDialog方法內,因為視窗只需要建立一次即可,每一次點選只需要展示視窗。

相關文章