MFC 模組對話方塊和非模態對話方塊的建立與釋放

2021-05-27 03:16:25 字數 570 閱讀 7953

模態對話方塊在應用繼續進行之前必須關閉。非模態對話方塊允許使用者執行另外的操作而不必取消或刪除該對話方塊。

1  模組對話方塊 

// 建立對話方塊

cmydlg    mydlg(this);

// 顯示對話方塊

uint_ptr dlgret = cmdparamdlg.domodal();

if(dlgret != idok)

銷毀模組對話方塊由系統自動**,我們不需要手動釋放。

2 非模態對話方塊

cmydlg  * mydlg = new cmydlg  ;

if ( null != mydlg )

很顯然,需要我們手動釋放這個對話方塊的資源。

根據msdn上的說法:

我們需要過載cmydlg  這個對話方塊中的兩個函式 oncancel() 和 postncdestroy()

void cmydlg  ::oncancel()

設定子對話方塊的方法

dlg屬性設為:  

style child  

取消 title bar  

border none

模態對話方塊和非模態對話方塊

模態對話方塊和非模態對話方塊的區別 在這裡我就說的比較通俗易懂了,就是當你開啟乙個模態對話方塊時,你的焦點不能轉移到程式的其他視窗上,也就是你只能先響應模態對話方塊,才能進行成下面的操作。而非模態對話方塊則相反,你可以不用管它,照常能夠將其他視窗啟用。建立模態對話方塊,主要是應用對話方塊的domod...

模態對話方塊和非模態對話方塊

模態對話方塊 關閉才能返回,非模態 不關閉就能返回 在資源裡新建立二個對話方塊 為新的對話方塊建立乙個類 在最原始的對話方塊函式的標頭檔案將上述兩個新新增的標頭檔案加進去,對模態按鈕進行程式設計 void cdemo11dlg onbnclickedbutton1 對非模態按鈕進行程式設計 void...

模態對話方塊和非模態對話方塊

模態對話方塊 modal dialogue box 是指在使用者想要對對話方塊以外的應用程式進行操作時,必須首先對該對話方塊進行響應。如單擊 確定 或者 取消 按鈕等將該對話方塊關閉,它和非模態對話方塊都是永遠置頂的,它們的區別在於當對話方塊開啟時,是否允許使用者進行其他物件的操作。開啟模態對話方塊...