MFC中創建屬性頁或者嚮導對話框

要在MFC中創建屬性也或者嚮導對話框需要涉及到兩個類:CPropertyPage和CPropertySheet類。

首先需要在MFC工程中打開資源視圖,在資源視圖中然後在Dialog中右擊插入一個對話框資源。

雙擊新插入的對話框資源,然後右鍵選擇其屬性,在屬性對話框中將其ID以及Caption改爲我們自己定義的,然後將屬性中的Style改爲“Child”,並且將其Border改爲“Thin”。

接下來就是最關鍵的一步,爲該對話框生成一個類,既然我們要讓這個對話框成爲屬性頁,那麼我們就要將該對話框與一個屬性頁對象綁定在一起,那麼我們就先需要爲這個對話框新建一個類,單機對話框,右鍵選擇“添加類”,然後在彈出的對話框中輸入類名,但是在類名下面的框中,要選擇其基類,這裏因爲我們是屬性頁,因此對話框這個類應該是繼承自CPropertyPage這個類的。然後單擊完成,這樣我們就爲這個對話框新建了一個屬性頁的類。

完成了上一步之後,我們有了屬性頁對話框,接下來這一步就是如何將我們的這個屬性頁顯示出來,那麼我們都知道,在Windows中的一些屬性頁,它通常都是好幾個屬性頁同在一個對話框中的,通過按鈕來切換,那麼我們是如何來實現讓多個對話框都在同一個屬性頁中的呢?對於這樣的問題,就是我們接下來要建立的東西了,就是屬性表單,我們可以把它當作一個用來裝屬性頁的盒子,我們可以在它裏面將我們的屬性頁建立起來,並且這些屬性頁都在同一個窗口中,我們只需要在主窗口中的相應的響應函數中建立一個屬性表單,並顯示它就可以了,這樣屬性表單中的屬性頁就都綁定到一個屬性表單中了,顯示一個屬性表單就是現實所有表單中包含的屬性頁。好了,那麼怎麼建立屬性表單呢?在我們的解決方案窗口中右鍵我們的工程名添加類,選擇新建MFC類,類名可以自己定義,但是基類選擇CPropertySheet類,然後確定,這樣我們就建好了一個屬性表單。

有了屬性表單還不行,因爲現在這個屬性表單和我們之前建立的和對話框綁定的屬性頁類沒有任何關係,所以接下來就是把我們之前建立的屬性頁對象添加到屬性表單中去。那麼我們就先打開我們的屬性表單的類聲明,然後在裏面包含我們的所有想包含的屬性頁類的頭文件,然後再爲屬性表單添加private成員,這些成員就是我們的屬性頁對象。建好了屬性頁對象之後,我們就需要在屬性表單的構造函數中添加我們的屬性頁了,用到的是AddPage()函數,這個函數的參數就是屬性頁對象的指針。

好了,做好了這一步之後基本上我們的屬性對話框就建好了,接下來就是怎麼觸發它打開這個屬性對話框了,這裏可以在主對話框的按鈕來添加一個響應函數(不僅僅是這種方式,還有其他的,響應按鈕是最簡單的),在響應函數中建立屬性表單對象,然後顯示這個對象就可以了,記得要在主界面的應用程序中包含屬性表單頭文件:

CMySheet sheet(_T(""));

sheet.DoModal();

如果是嚮導的話還要在第一個屬性頁類中重載OnSetActive函數,最後一個屬性頁類中重載OnSetActivev“完成”。然後再上面的語句中的DoMOdal之前加上sheet.SetWizardMode();設置成嚮導模式即可。

發佈了50 篇原創文章 · 獲贊 86 · 訪問量 20萬+
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章