對話方塊程式 模式和非模式

2021-07-11 17:11:07 字數 816 閱讀 7573

模式對話方塊:當對話方塊彈出後,無法操作其父視窗或者上一級視窗,直到關閉該對話方塊為止。

在主對話方塊關聯類a的情況下,模式對話方塊建立步驟:

新插入乙個對話方塊資源,並新增所需控制項

對新對話方塊生成新的對話方塊類b

對主對話方塊中的控制項建立訊息對映函式

在該訊息對映函式中建立對話方塊類b的物件,如

b dlg;

dlg.domodal();

模式對話方塊的特點:

在關閉模式對話方塊前,無法操作背景視窗,除非本身就是背景視窗。

使用dialog::domodal函式彈出模式對話方塊,該函式執行過程是阻塞函式。因此,在棧內或堆內申請對話方塊類的物件都可以,申請棧內變數開發和執行效率較高。

在主對話方塊關聯類a的情況下,非模式對話方塊建立步驟:

新插入乙個對話方塊資源,並新增所需控制項

對新對話方塊生成新的對話方塊類c

對主對話方塊中的控制項建立訊息對映函式

在該訊息對映函式中建立對話方塊類c的物件指標,如

c* pdlg =

new c;

pdlg->create(idd_test);

pdlg->showwindow(sw_show);

非模式對話方塊的特點:

在關閉非模式對話方塊前,不影響對背景視窗的操作。

使用dialog::create函式建立非模式對話方塊,該函式是非阻塞函式。因此,必須在堆內申請對話方塊資源,不能再棧內申請臨時物件,因為臨時物件在離開函式體時會自動銷毀。

MFC 對話方塊程式 模式對話方塊與非模式對話方塊

一 根據主視窗型別,mfc軟體工程可以分為以下幾種架構模型 例如 記事本和畫筆等。2 mdi multiple document inte ce 多文件介面,乙個主框架視窗下可以同時編輯多份文件。例如 vc 6.0,photoshop等軟體。3 基於對話方塊的軟體模型 主視窗是通過資源管理器,在對話...

彈出模式對話方塊和彈出非模式對話方塊

非模式對話方塊 clistlink m plistlink null ssn return pishowlistdialog in ssn object id listtype,in ssn object id listdialogid m plistlink showwindow sw show ...

Qt 非模式對話方塊

應用例項 搜尋框 建立乙個widget物件,作為主窗體的成員變數 searchwindow m searchwin m searchwin new searchwindow this m searchwin setwindowflags qt window 在使用者執行搜尋選單時顯示此視窗 int ...