MFC 屬性表單的建立

2022-07-09 06:06:11 字數 1866 閱讀 8751

開發環境:vs2019

我們建立以下效果的乙個窗體。

有三個頁面分別對應了不同的視窗,

這個視窗是乙個繼承了cmfcpropertysheet類的物件視窗,其原理,就是我們分別新增三個不同的屬性表頁,然後將這三個屬性表頁,新增到我們這個cmfcpropertysheet類的物件裡面。

現在我們來實現三個屬性表頁的建立。

首先建立資源,點到資源管理器找到dialog然後選擇新增資源,這裡我們展開dialog資源列表,找到lareg選項,我們使用這個來建立我們的屬性表頁。

建立完後新增一些控制項,如下圖所示:

按照此步驟分別建立三個這樣的屬性表頁。

上面我們也說到,效果的實現就是將這三個聚合起來,然後顯示出來。

我們為每乙個頁面建立乙個類,繼承於cmfcpropertypage。

如下圖所示:

idd_prop1就是我們整個屬性頁表的id

我們這裡新增了idd列舉變數,以方便與頁面連線。我們在建構函式裡面連線我們建立的屬性表頁

分別對其他的屬性表頁執行相同的操作。

做完以上步驟之後,我們就開始將三個頁面聚合起來,

我們新建乙個類,繼承於cmfcpropertysheet,並將三個頁面新增到類裡面,

然後我們在建構函式裡面新增這三個頁面

這樣我們就把這三個頁面集合到乙個視窗下了,下面我們來顯示這個視窗,我們在選單欄新增乙個選單用來顯示這個視窗,名字就叫「屬性表單」

然後新增事件處理函式:

這樣就顯示了乙個模態對話方塊,使用方法於cdialog相同,也可以使用create建立非模態的對話方塊,

如果我們呼叫propsheet.setwizardmode(); 函式那麼屬性表單將會變成嚮導模式

注意標頭檔案的引用,vc6.0沒有這個類,不適用vc6.0

由於該按鈕是內部實現的,所以我們需要呼叫虛函式來實現對按鈕的修改,cproertysheet類提供了修改按鈕的方法(他們之間是友元類,相互呼叫)setwizardbuttons(uint),這個函式用來設定顯示的按鈕

分別重寫表單頁的虛函式onsetactive(),這個虛函式在當當前頁變為活動頁時就執行該函式。所以我們在該函式下面實現我們的按鈕修改操作,因為按鈕是父類構建的,所以我們獲取父類的指標,由於指標是cwnd*型別的,所以我們要強制轉換成(cpropertysheet*)型別的指標

MFC建立屬性表單

1 插入3個屬性頁對話方塊資源。2 分別給3個屬性頁建立乙個新類。3 建立乙個屬性表單類。4 分別定義3個屬性表單物件,把物件新增到屬性表單中。5 設定屬性表單的 樣式,並啟用onsetactive 虛函式 設定屬性表單嚮導 6 建立乙個按鈕命令響應函式,顯示屬性表單。cpropsheet incl...

mfc中新增屬性表單

1.主對話方塊中 新增乙個類為cpage 2.在page.h中新增cpropertysheet 物件m sheet 3.新建子對話方塊基於idd proppage large 分別為子對話方塊新建類cpage1,cpage2 4.在page.h中新增cpage1,cpage2的物件m page1,m...

MFC 使用屬性頁表單

首先插入idd proppage large資源 建立類cpropertypage 建立屬性頁表單cpropertysheet,在標頭檔案中建立cpropertypage變數,在建構函式中載入屬性頁addpage page1 去掉幫助 應用按鈕 cpropertysheet建構函式中新增 this ...