包含控制項頁的標籤式對話方塊
,使用者可通過單擊滑鼠在其間切換.
本篇我們只介紹使用屬性表實現多標籤頁對話方塊.這也是本系列文章的風格,即為了盡可能的簡單化,只提供必要的,必要的只提供最通用的.
屬性表
屬性表的功能都合理地封裝在一對
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 圖示 ...