MFC中模態和非模態對話方塊的建立和區別

2021-07-27 16:58:31 字數 1006 閱讀 7576

在mfc中,經常遇到彈出對話方塊進行資訊互動,這時需要建立對話方塊。這種訊息對話方塊分為兩種:模態和非模態。

區別:簡單的說:模態對話方塊是你在彈出對話方塊之後必須對其作出響應和操作之後才能對對話方塊之外的其他程式的進行操作;非模態對話方塊就是在彈出對話方塊之後可以對彈出的對話方塊和對話方塊之外的應用程式同時進行操作,互不影響。

模態對對話方塊的建立:在工程的資源檢視中插入對話方塊,為其新增類;在父視窗的類宣告中新增新插入對話方塊物件為類成員。可在父視窗的任何地方彈出對話方塊方法:domodal()函式,eg:

//父視窗類的宣告

class diadlg

//父視窗類的任一函式

*** diadlg::***()

//....

}

利用domodal()函式彈出的對話方塊為模態的。

非模態對話方塊的建立:在工程的資源檢視中插入對話方塊,為其新增類;在父視窗的類宣告中新增新插入對話方塊物件指標

為類成員。

可在父視窗的任何地方彈出對話方塊方法步驟:

(1)為新插入對話方塊

物件指標成員開闢乙個對話方塊

物件的記憶體;

(2)呼叫create()函式建立乙個對話方塊,這一步需要知道新插入對話方塊的id;

(3)呼叫showwindow()

函式顯示對話方塊。eg:

//父視窗類的宣告

class diadlg

//父視窗類的任一函式

*** diadlg::***()

利用create()函式建立的對話方塊為非模態的對話方塊。

建立區別:模態對話方塊在其父視窗的類宣告中的成員是物件,建立採用domodal()函式;非模態對話方塊在其父視窗的類

宣告中的

成員是物件指標,建立採用create()函式。

MFC中模態對話方塊和非模態對話方塊的差別

在mfc中有模態對話方塊和非模態對話方塊,那這兩種有什麼差別呢。又都是用於什麼場合呢。首先,要弄清楚2種對話方塊是怎樣建立的。然後要弄清楚2種對話方塊有什麼差別,可能從表面上看,模態會堵塞主對話方塊。可原理是什麼呢。還有就是。當有模態和非模態對話方塊沒有關閉的時候,在工作列中。關閉主視窗,會有什麼樣...

MFC中模態與非模態對話方塊

vc 中非模態對話方塊生成與模態有相似之處,主要不同在於模態採用domodal函式生成,而非模態採用create函式 而且非模態對話方塊生存週期較長,一般和父視窗的生存週期相同。到新增類一步,非模態與模態都是相同的.但由於要使用create函式,因為要在生成非模態對話方塊的父視窗中新增對話方塊類的指...

MFC模態與非模態對話方塊

1.1模態對話方塊 model dialog box 當模態對話方塊顯示時,程式會暫停執行,直到關閉這個模態對話方塊之後,才能執行程式中的其他任務。1.2非模態對話方塊 modeless dialog box 當非模態對話方塊顯示時,執行轉而執行程式中的其他任務,而不用關閉這個對話方塊。2.1模態對...