再探MFC 二 多標籤對話方塊

2021-06-29 09:23:29 字數 2345 閱讀 9862

包含控制項頁的標籤式對話方塊

,使用者可通過單擊滑鼠在其間切換.

本篇我們只介紹使用屬性表實現多標籤頁對話方塊.這也是本系列文章的風格,即為了盡可能的簡單化,只提供必要的,必要的只提供最通用的.

屬性表

屬性表的功能都合理地封裝在一對

mfc類

,cpropertysheet

和cpropertypage

中.cpropertysheet

代表屬性表自身,是從

cwnd

派生出來的

.cpropertypage

代表屬性表的頁,是從

cdialog

派生出來的.

和對話方塊一樣

,屬性表可以是模式和無模式的

.cpropertysheet::domodal

建立模式屬性表,而

cpropertysheet::create

建立無模式屬性表.

建立模式屬性表的步驟如下:

針對屬性表的每一頁建立乙個對話方塊模板

,定義頁的內容和特性

.將對話方塊標題設定成您希望在屬性表頁上方標籤中顯現的標題

.針對屬性表的每一頁由

cpropertypage

派生出乙個類似對話方塊的類

.其中包含通過

ddx或

ddv與頁面中控制項相聯絡的公用資料成員.由

cpropertysheet

派生出乙個屬性錶類

.將該屬性錶類和第

2步中得到的屬性表頁類例項化.利用

cpropertysheet::addpage

將各頁按期望中的顯示順序新增到屬性表中

.呼叫屬性表的

domodal

函式將屬性表顯示在螢幕上

.簡單示例**

// cfirstpage 對話方塊

class cfirstpage :public cpropertypage

;protected:

virtualvoid dodataexchange(cdataexchange* pdx);   // ddx/ddv 支援

declare_message_map()

};// firstpage.cpp :實現檔案

//#include"stdafx.h"

#include"mfcexplore.h"

#include"firstpage.h"

#include"afxdialogex.h"

// cfirstpage 對話方塊

implement_dynamic(cfirstpage,cpropertypage)

cfirstpage::cfirstpage()

:cpropertypage(cfirstpage::idd)

cfirstpage::~cfirstpage()

voidcfirstpage::dodataexchange(cdataexchange* pdx)

begin_message_map(cfirstpage,cpropertypage)

end_message_map()

// cfirstpage 訊息處理程式

csecondpage

類似於cfirstpage,略.

#pragma once

#include"afxdlgs.h"

#include"firstpage.h"

#include"secondpage.h"

classcmypropertysheet :

publiccpropertysheet

;#include"stdafx.h"

#include"mypropertysheet.h"

cmypropertysheet::cmypropertysheet(lpctstrpszcaption, cwnd* pparentwnd)

:cpropertysheet(pszcaption,pparentwnd, 0)

cmypropertysheet::~cmypropertysheet()

在中建立模態屬性表.

cmypropertysheetps(_t("properties"));

m_pmainwnd =&ps;

int_ptr nresponse =ps.domodal();

參考自mfc windows

程式設計

8.4屬性表

.

MFC多標籤頁對話方塊

1.新建乙個mfc工程 取名pagesheet,選擇dialog based,然後finish。2.在對話方塊資源中插入兩個對話方塊idd dialog1 idd dialog2,作為兩個子頁。3.為這兩個對話方塊增加兩個類,分別為cpage1和cpage2,其基類選擇cpropertypage。4...

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

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

MFC 對話方塊

1 建立對話方塊模板,設定對話方塊屬性 cadditionddlg 主對話方塊類 顯示的主要介面 addition的資源樹 4個子項 dialog 對話方塊 含有2個對話方塊模板 id為idd aboutbox 關於對話方塊模板 idd addtion dlalog 主對話方塊模板 lcon 圖示 ...