模態(tài)對(duì)話框------必須在它運(yùn)行完后才能執(zhí)行其他程序,在單文檔應(yīng)用程序中只能一次打開(kāi)并執(zhí)行。
非模態(tài)對(duì)話框-------可以在應(yīng)用程序中打開(kāi)多次。
創(chuàng)建過(guò)程:花費(fèi)了點(diǎn)時(shí)間,不過(guò)還是摸索出來(lái)了。
1.創(chuàng)建一個(gè)對(duì)話框資源,含有一個(gè)ID。
2.創(chuàng)建一個(gè)類,在工程中。為Modaldlg類,然后它繼承自CDialog類。下面的那個(gè)ID就是剛剛創(chuàng)建的資源的ID。
3.添加菜單中的響應(yīng)函數(shù)。在菜單中添加一項(xiàng),取名“對(duì)話框”,然后設(shè)置為可以編輯的ID,設(shè)定其ID。
設(shè)置完后,在Classwizard中,選擇View的選項(xiàng)下面,找到剛剛的那個(gè)對(duì)話框?qū)τ贗D的消息,有一個(gè)Command的消息,添加響應(yīng)函數(shù)為OnDialog,注意,必須是View的子函數(shù),其他的不行。
void CTest36View::OnDialog()


{
// TODO: Add your command handler code here
Modaldlg dlg;
dlg.DoModal();
}

采用模態(tài)對(duì)話框就是調(diào)用DoModal()函數(shù)來(lái)實(shí)現(xiàn)。
至此就完成了。
最后附個(gè)截圖:

從圖中看到,點(diǎn)擊對(duì)話框菜單后,出來(lái)的這個(gè)新的dialog使得原來(lái)的界面不可用,變?yōu)榛疑挥挟?dāng)本窗口響應(yīng)完后才可以響應(yīng)主窗口。。。。
posted on 2010-02-08 16:43
deercoder 閱讀(368)
評(píng)論(0) 編輯 收藏 引用