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

2021-09-23 17:25:10 字數 1030 閱讀 7487

一、根據主視窗型別,mfc軟體工程可以分為以下幾種架構模型:

例如:記事本和畫筆等。

2、mdi(multiple document inte***ce):多文件介面,乙個主框架視窗下可以同時編輯多份文件。

例如:vc++6.0,photoshop等軟體。

3、基於對話方塊的軟體模型:主視窗是通過資源管理器,在對話方塊模板內擺放控制項編輯而成的。

多數用於開發小規模軟體,例如:任務管理器。

4、其他自定義視窗做主視窗:主視窗既不是框架也不是對話方塊,而是直接開發通用視窗類cwnd而成。

例如:輸入法視窗、qq和360軟體等,有時這類軟體也都可以使用框架或對話方塊模式來代替開發而成。

對話方塊主要分為兩個型別:模式對話方塊和非模式對話方塊。當模式對話方塊彈出後,無法操作它的父視窗或者上一級視窗,直到關閉該對話方塊為止。例如:大部分軟體的「關於…」對話方塊,都是屬於模式對話方塊。當非模式對話方塊彈出後,不影響對它的父視窗或者上一級視窗的操作。例如:qq的聊天框或者編輯軟體中的文字查詢對話方塊等等。

1、模式對話方塊的特點是:

a)在關閉模式對話方塊前,無法操作背景視窗,除非自身就是主視窗;

b)使用cdialog::domodal函式彈出模式對話方塊,該函式執行過程是阻塞函式; 

c)因此在棧內或者堆內申請對話方塊類的物件都可以的,申請棧內變數開發和執行效率高一些。

2、非模式對話方塊的特點是:

a)在非模式對話方塊執行時可以操作背景視窗;

b)使用cdialog::create函式和cwnd::showwindow彈出模式對話方塊,該函式執行過程是非阻塞函式; 

c)不能在棧內或者堆內申請對話方塊類的臨時物件,需要申請堆內變數或者使用全域性變數、成員變數等生命期較長的物件。

類結構圖:

模式對話方塊效果圖:

非模式對話方塊效果圖:

我在主對話方塊上面設定了兩個button,分別彈出模式對話方塊和非模式對話方塊。

**實現:

void cmfcdlg::onbutton1() 

void cmfcdlg::onbutton2() 

原文: 

MFC 建立模式對話方塊與非模式對話方塊

模式對話方塊 my about cb cb.domodal 非模式對話方塊 my about cb new my about cb create idd myabout,this cb showwindow sw show vc2008 mfc 預設新增到對話方塊會有 確定跟取消,但這倆框在資源檢視...

mfc 子對話方塊控制父對話方塊 MFC對話方塊構架程式

遺憾的是 從來沒有被堅定選擇過,就像是,他只是剛好需要,你只是剛好在。網易雲熱評 一 對話方塊架構分類 1 模式對話方塊,彈出來不能進行其他操作 2 無模式對話方塊,彈出來後可以進行其他操作 二 新建win32應用程式 模式對話方塊 1 建立 2 修改屬性 3 新增dialog資源 4 包含標頭檔案...

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

1.對話方塊分類 按工作方式不同,可將對話方塊分成兩類 模態對話方塊 modal 在關閉模態對話方塊之前,程式不能進行其他工作 如一般的 開啟檔案 對話方塊 非模態對話方塊 modeless 非模態對話方塊開啟後,程式仍然能夠進行其他工作 如一般的 查詢與替換 對話方塊 2.對話方塊建立 模態對話方...