▲創建屬性表單
1.創建屬性頁
在資源視圖中選擇插入菜單,在插入資源對話框中展開Dialog項,其中提供三種大小的屬性頁資源,選擇其中一種規格的屬性頁 (IDD_PROPPAGE_LARGE)插入到工程資源中,根據屬性表單中屬性頁的數量,插入相同數量的屬性頁到工程資源中
2.在屬性頁上右鍵菜單的屬性中修改每個屬性頁的ID(IDD_PROP1),Caption(page1),在資源視圖列表中屬性頁右鍵菜單的屬性中修改每個屬性頁的語言(Chinese [P.R.C])。Caption決定屬性頁標籤上顯示的文字,語言決定該頁的文字編碼。
3. 打開類嚮導,新建一個類,填寫類名(CPorp1),選擇基類爲CPropertyPage,選擇ID(IDD_PROP1)。根據屬性頁的數量添加相同數量的類。
4.打開類嚮導,新建一個類,填寫類名(CPropSheet),選擇基類爲CPropertySheet。
5.爲CPropSheet類增加成員變量
CPorp1 prop1 //屬性頁對象
... //添加與屬性頁數量相同的屬性頁對象
6.在CPropSheet類的構造函數中添加代碼
AddPage(&m_prop1) //將屬性頁對象添加到屬性表單中
... //添加其他屬性頁
7.顯示屬性表單
CPropSheet propsheet(...) //按指定的標題,類型實例化屬性表單對象
propsheet.DoModal() //顯示一個模態的屬性表單
//////////////////////////////////////////////////////////////////////
CPropSheet propsheet(...) //按指定的標題,類型實例化屬性表單對象
propsheet.Create() //創建並顯示一個非模態的屬性表單
▲和對話框一樣,屬性表單也分爲模態和非模態兩種類型,應注意非模態屬性表單需要自己調用DestroyWindow()銷燬窗口,非模態屬性表單不會創建按鈕,需要自行創建,如下例:
CPropSheet propsheet(...) //按指定的標題,類型實例化屬性表單對象
CButton button //創建按鈕對象
propsheet.Create() //創建並顯示一個非模態的屬性表單
propsheet.SetWindowPos(...) //設置屬性表單窗口大小以容納按鈕
button.Create(...&propsheet...) //創建按鈕並添加進屬性表單窗口
-----------------------------------------------------------------------------------------------------
▲創建嚮導
創建嚮導的1~6與創建屬性表單步驟相同
7.顯示嚮導
CPropSheet propsheet(...) //按指定的標題,類型實例化屬性表單對象
propsheet.SetWizardMode() //指定爲嚮導模式
propsheet.DoModal() //顯示一個模態的嚮導
//////////////////////////////////////////////////////////////////////
CPropSheet propsheet(...) //按指定的標題,類型實例化屬性表單對象
propsheet.SetWizardMode() //指定爲嚮導模式
propsheet.Create() //創建並顯示一個非模態的嚮導
▲注意非模態嚮導需要自己調用DestroyWindow()銷燬窗口,非模態屬性表單不會處理點擊按鈕的行爲,需要自行處理
▲SetWizardButtons()
設置嚮導中出項哪些按鈕(上一步,下一步,完成...)
▲OnSetActive()
CPropertyPage類的成員函數,當在屬性表單或嚮導中,屬性頁被激活時由系統調用該函數,該函數爲虛函數,在子類中可重寫此函數。
▲每個屬性頁與屬性表單或嚮導是子窗口與父窗口的關係