大體思想:
設(shè)置對話框?qū)傩皂搶傩?
在編寫時要注意把對話框資源以下屬性設(shè)置為對應(yīng)值
屬性名 值
System Menu False
Style Child
Title Bar False
Border None
代碼樣例(這里我一幾個按鈕控件來演示):
添加兩個對話框資源并為對話框資源定義相關(guān)屬性,資源 ID 為IDD_PAGE1,IDD_PAGE2,資源視圖如下所示:
為主對話框添加相關(guān)成員變量(屬性頁關(guān)聯(lián)對象,CDialog 數(shù)組指針,當前顯示標簽頁的索引)代碼如下:
在主對話框的 OnInitDialog 函數(shù)中初始化屬性頁相關(guān)操作,添加的具體代碼如下:
然后為對話框添加兩個按鈕并通過這個兩個按鈕的事件響應(yīng)函數(shù)來實現(xiàn)屬性頁的切換,具體代碼如下:
運行結(jié)果:
對話框?qū)傩皂撡Y源
普通對話框資源和屬性頁資源對話框的區(qū)別:
選項 普通對話框 屬性頁對話框
Style Popup Child
Border Dialog Thin
System menu 選中 未選中
可以把普通對話框按照上面修改便可以稱為屬性頁對話框
創(chuàng)建對話框?qū)傩皂撡Y源
編寫CPropertySheet流程圖:
代碼樣例:
屬性頁模式
創(chuàng)建兩個屬性頁資源 ID 為 IDD_PAGE1 與 IDD_PAGE2,并關(guān)聯(lián)兩個 CPropertyPage 派生類,類分別為 CPage1,CPage2.資源視圖如下:
CPage1 與 CPage2 源碼:
在工程中添加一個派生于 CPropertySheet 類,這里我不它命名為 CMyProSh,然后在 CMyProSh 中添加 CPage1,CPage2 對象作為其成員變量,并在構(gòu)造函數(shù)中用 AddPage 函數(shù)把 CPage1,CPage2 對象添加到屬性表單中去.CMyProSh 程序源碼如下:
在主對話框中添加一個按鈕然后為按鈕添加事件響應(yīng)函數(shù),在函數(shù)中添加如下代碼:
//創(chuàng)建表單類對象CMyProSh pro(L"表單樣例");//顯示模態(tài)表單對話框pro.DoModal();
運行結(jié)果:
向?qū)J?
相關(guān)函數(shù):
代碼樣例:
在創(chuàng)建模態(tài)對話框前的步驟與屬性頁模式一致.但在調(diào)用 DoModal 函數(shù)創(chuàng)建模態(tài)對話框前需要先調(diào)用 SetWizardMode 成員函數(shù).代碼如下:
運行結(jié)果:
說明:
Tab Control 的運行效果有點像 Property Sheet,但兩者還是有一些區(qū)別.我的理解就是Property Sheet主要用在對話框中,對數(shù)據(jù)進行進行分類管理.而 Tab Control 使用范圍更廣一些,既可以用在對話框,也可以用在視圖中,除了可以管理配置數(shù)據(jù)外,還可以對軟件的組織進行規(guī)劃,比如可以通過它來切換不同的視圖等等,當然這不是沒有代價的,Tab Control 的編程就比 Property Sheet 的復(fù)雜很多.但是不是每個 Tab Control 的標簽頁對應(yīng)一個頁面
對于客戶區(qū)其實只有一個,工作原理其實就是有許多的子對話框在客戶區(qū)上但是只有一個顯示而其他的都沒有顯示通過按標簽頁后相應(yīng)事件讓現(xiàn)在顯示的子對話框隱藏而對應(yīng)于標簽頁索引的某個子對話框顯示
相關(guān)函數(shù):
CTabCtrl 類成員函數(shù)
CWnd 類成員函數(shù)
編寫流程圖:
代碼樣例:
在對話框上建立一個 Tab Control 控件,然后為控件添加關(guān)聯(lián)的控制變量,并為變量命名為 m_tab.資源對話如下圖所示:
添加兩個對話框資源并為對話框資源定義相關(guān)屬性,資源 ID 為IDD_PAGE1,IDD_PAGE2,資源視圖如下所示:
為主對話框添加相關(guān)成員變量(屬性頁關(guān)聯(lián)對象,CDialog 數(shù)組指針,當前顯示標簽頁的索引)代碼如下:
在主對話框的 OnInitDialog 函數(shù)中初始化 Tab Control 控件,即在 OnInitDialog 函數(shù)中添加一下代碼:
為 Tab Control 控件添加響應(yīng)標簽頁選擇改變事件( 即 TCN_SELCHANGE 事件),然后在事件響應(yīng)函數(shù)中添加切換屬性頁操作,相關(guān)代碼如下:
運行結(jié)果: