C++ 模態與非模態對話框


視頻教程:模態與非模態對話框1

 

模態對話框:子窗口關閉之前,不能對父窗口操作

非模態對話框:子窗口關閉之前,可以對父窗口操作

 

 

插入一個對話框:

資源視圖--->右擊--->

進行類的綁定:(給添加的對話框定義類名:創建了一個類)   

右擊對話框--->添加類--->

 

  多出了一個頭文件--->

 

 

創建模態對話框:

 在工程cpp中添加剛才的頭文件 #include "Cmydialog.h"   

在需要彈出對話框的按鈕中寫:

Cmydialog dlg;//創建一個對話框對象
dlg.DoModal();//彈出模態對話框,並等待用戶的操作

 

 創建非模態對話框:

Cmydialog dlg;//創建一個對話框對象
dlg.Create(IDD_DIALOG1, this);//創建一個非模態對話框,但不顯示
//參數1 子窗口的ID
//參數2 父窗口句柄,可以為NULL
dlg.ShowWindow(SW_SHOW);//顯示窗口,並繼續往下執行,不會等待用戶的操作

上面顯示的非模態對話框會一閃而過,原因dlg的作用域只在按鈕范圍內

解決的辦法:方法1.把對象申請為全局變量

                     方法2.指針法(new)

Cmydialog *p=new Cmydialog();
p->Create(IDD_DIALOG1, this);//創建一個非模態對話框,但不顯示
//參數1 子窗口的ID
//參數2 父窗口句柄,可以為NULL
p->ShowWindow(SW_SHOW);//顯示窗口,並繼續往下執行,不會等待用戶的操作

 

 


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM