CMFCPropertySheet 類別
CMFCPropertySheet
類別支援屬性工作表,其中每個屬性頁是由頁面索引標籤、工具列按鈕、樹狀目錄控制項節點或清單項目所表示。
語法
class CMFCPropertySheet : public CPropertySheet
成員
公用建構函式
名稱 | 描述 |
---|---|
CMFCPropertySheet::CMFCPropertySheet | 建構 CMFCPropertySheet 物件。 |
CMFCPropertySheet::~CMFCPropertySheet |
解構函式。 |
公用方法
備註
CMFCPropertySheet
類別表示屬性工作表,也稱為索引標籤對話方塊。 CMFCPropertySheet
類別能以各種方式顯示屬性頁。
請執行下列步驟,在應用程式中使用 CMFCPropertySheet
類別。
自
CMFCPropertySheet
類別衍生類別並加以命名,例如,CMyPropertySheet。在 CMyPropertySheet 建構函式中呼叫 CMFCPropertySheet::SetLook 方法。 該方法的參數會指定屬性頁應該要顯示為沿著屬性工作表頂端或左邊的索引標籤;Microsoft OneNote 屬性工作表樣式的索引標籤;在 Microsoft Outlook 工具列控制項上的按鈕;在樹狀目錄控制項上的節點;或在屬性工作表左邊的項目清單。
如果您在 Microsoft Outlook 工具列的樣式中建立屬性表,請呼叫 CMFCPropertySheet::SetIconsList 方法,將影像清單與屬性頁產生關聯。
建立
CMFCPropertySheet
控制項,並呼叫其DoModal
方法。
插圖
下圖描述其樣式為內嵌 Microsoft Outlook 工具列的屬性工作表。 Outlook 工具列會出現在屬性工作表的左邊。
下圖描述包含 CMFCPropertyGridCtrl 類別 物件的屬性表。 該物件是樣式為標準通用控制項屬性頁的屬性工作表。
下圖描述其樣式為樹狀目錄控制項的屬性工作表。
繼承階層架構
需求
標頭: afxpropertysheet.h
CMFCPropertySheet::AddPage
將頁面新增至屬性工作表。
void AddPage(CPropertyPage* pPage);
參數
pPage
[in]頁面物件的指標。 此參數不可以是 NULL。
備註
這個方法會將指定的屬性頁新增為屬性表中最右邊的索引標籤。 因此,使用此方法以從左至右的順序新增頁面。
如果屬性表是Microsoft Outlook 的樣式,架構會顯示屬性表左邊的導覽按鈕清單。 在此方法新增屬性頁之後,它會將對應的按鈕新增至清單。 若要顯示屬性頁,請按下其對應的按鈕。 如需屬性表樣式的詳細資訊,請參閱 CMFCPropertySheet::SetLook。
CMFCPropertySheet::AddPageToTree
將新的屬性頁新增至樹狀目錄控制項。
void AddPageToTree(
CMFCPropertySheetCategoryInfo* pCategory,
CMFCPropertyPage* pPage,
int nIconNum=-1,
int nSelIconNum=-1);
參數
pCategory
[in]父樹狀節點的指標,或 NULL,以將指定的頁面與最上層節點產生關聯。 呼叫 CMFCPropertySheet::AddTreeCategory 方法來取得此指標。
pPage
[in]屬性頁物件的指標。
nIconNum
[in]以零起始的圖示索引,如果沒有使用任何圖示,則為 -1。 未選取頁面時,此圖示會顯示在樹狀目錄控件屬性頁旁邊。 預設值為 -1。
nSelIconNum
[in]以零起始的圖示索引,如果沒有使用任何圖示,則為 -1。 選取頁面時,會在樹狀目錄控件屬性頁旁邊顯示圖示。 預設值為 -1。
備註
這個方法會將屬性頁新增為樹狀控件的分葉。 若要新增屬性頁,請建立 CMFCPropertySheet
物件、呼叫 CMFCPropertySheet::SetLook 方法,並將 look 參數設定為 CMFCPropertySheet::PropSheetLook_Tree
,然後使用此方法新增屬性頁。
CMFCPropertySheet::AddTreeCategory
將新的節點新增至樹狀目錄控制項。
CMFCPropertySheetCategoryInfo* AddTreeCategory(
LPCTSTR lpszLabel,
int nIconNum=-1,
int nSelectedIconNum=-1,
const CMFCPropertySheetCategoryInfo* pParentCategory=NULL);
參數
lpszLabel
[in]節點的名稱。
nIconNum
[in]以零起始的圖示索引,如果沒有使用任何圖示,則為 -1。 未選取頁面時,此圖示會顯示在樹狀目錄控件屬性頁旁邊。 預設值為 -1。
nSelectedIconNum
[in]以零起始的圖示索引,如果沒有使用任何圖示,則為 -1。 選取頁面時,會在樹狀目錄控件屬性頁旁邊顯示圖示。 預設值為 -1。
pParentCategory
[in]父樹狀節點的指標,或 NULL,以將指定的頁面與最上層節點產生關聯。 使用 CMFCPropertySheet::AddTreeCategory 方法設定此參數。
傳回值
樹狀結構控件中新節點的指標。
備註
使用這個方法,將另稱為類別的新節點新增至樹狀目錄控件。 若要新增節點,請建立 CMFCPropertySheet
物件、呼叫 CMFCPropertySheet::SetLook 方法,並將 look 參數設定為 CMFCPropertySheet::PropSheetLook_Tree
,然後使用此方法新增節點。
在後續呼叫 CMFCPropertySheet::AddPageToTree 和 CMFCPropertySheet::AddTreeCategory 時,使用這個方法的傳回值。
CMFCPropertySheet::CMFCPropertySheet
建構 CMFCPropertySheet
物件。
CMFCPropertySheet(
UINT nIDCaption,
CWnd* pParentWnd=NULL,
UINT iSelectPage=0);
CMFCPropertySheet(
LPCTSTR pszCaption,
CWnd* pParentWnd=NULL,
UINT iSelectPage=0);
參數
pszCaption
[in]包含屬性表標題的字串。 不可以是 NULL。
nIDCaption
[in]包含屬性表標題的資源識別碼。
pParentWnd
[in]屬性表的父視窗指標,如果父視窗是應用程式的主視窗,則為 NULL。 預設值是 NULL。
iSelectPage
[in]頂端屬性頁之以零起始的索引。 預設值為 0。
備註
如需詳細資訊,請參閱 CPropertySheet::CPropertySheet 建構函式的參數。
CMFCPropertySheet::EnablePageHeader
在每個頁面頂端保留空間以繪製自訂標頭。
void EnablePageHeader(int nHeaderHeight);
參數
nHeaderHeight
[in]標頭的高度,以像素為單位。
備註
若要使用 nHeaderHeight 參數的值來繪製自定義標頭,請覆寫 CMFCPropertySheet::OnDrawPageHeader 方法。
CMFCPropertySheet::GetHeaderHeight
擷取目前標頭的高度。
int GetHeaderHeight() const;
傳回值
標頭的高度,以像素為單位。
備註
呼叫此方法之前, 請先呼叫 CMFCPropertySheet::EnablePageHeader 方法。
CMFCPropertySheet::GetLook
擷取指定目前屬性工作表外觀的列舉值。
PropSheetLook GetLook() const;
傳回值
其中一個列舉值,指定屬性表的外觀。 如需可能值的清單,請參閱 CMFCPropertySheet::SetLook一節中的列舉數據表。
CMFCPropertySheet::GetNavBarWidth
取得導覽列的寬度。
int GetNavBarWidth() const;
傳回值
導覽列的寬度,以像素為單位。
CMFCPropertySheet::GetTab
擷取支援目前屬性工作表控制項的內部索引標籤控制項物件。
CMFCTabCtrl& GetTab() const;
傳回值
內部索引標籤元件物件。
備註
您可以設定屬性表,使其以不同的樣式顯示,例如樹狀控件、瀏覽按鈕清單或一組索引標籤頁面。
呼叫此方法之前,請先呼叫 CMFCPropertySheet::SetLook 方法,以設定屬性表控件的外觀。 然後呼叫 CMFCPropertySheet::InitNavigationControl 方法來初始化內部索引標籤元件物件。 使用這個方法來擷取 Tab 控制件物件,然後使用該物件來處理屬性表上的索引標籤。
如果屬性表控件未設定為出現在 OneNote Microsoft 的樣式中,這個方法會以偵錯模式判斷提示。
CMFCPropertySheet::InitNavigationControl
初始化目前屬性工作表控制項的外觀。
virtual CWnd* InitNavigationControl();
傳回值
屬性表控件視窗的指標。
備註
屬性表控件可以以數種不同的形式出現,例如一組索引卷標式頁面、樹狀控件或流覽按鈕清單。 使用 CMFCPropertySheet::SetLook 方法來指定屬性表控件的外觀。
CMFCPropertySheet::OnActivatePage
啟用屬性頁時由架構呼叫。
virtual void OnActivatePage(CPropertyPage* pPage);
參數
pPage
[in]代表已啟用屬性頁之屬性頁物件的指標。
備註
根據預設,此方法可確保已啟用的屬性頁卷動到檢視中。 如果目前屬性表的樣式包含Microsoft Outlook 窗格,這個方法會將對應的 Outlook 按鈕設定為核取的狀態。
CMFCPropertySheet::OnDrawPageHeader
由架構呼叫以繪製自定義屬性頁的標頭。
virtual void OnDrawPageHeader(
CDC* pDC,
int nPage,
CRect rectHeader);
參數
pDC
[in]裝置內容的指標。
nPage
[in]以零起始的屬性頁碼。
rectHeader
[in]周框,指定要繪製標頭的位置。
備註
根據預設,此方法不會執行任何動作。 如果您覆寫此方法,請在架構呼叫此方法之前呼叫 CMFCPropertySheet::EnablePageHeader 方法。
CMFCPropertySheet::OnRemoveTreePage
由架構呼叫以從樹狀目錄控制項移除屬性頁。
virtual BOOL OnRemoveTreePage(CPropertyPage* pPage);
參數
pPage
[in]屬性頁物件的指標,表示要移除的屬性頁。
傳回值
如果此方法成功,則為TRUE;否則為 FALSE。
CMFCPropertySheet::RemoveCategory
從樹狀目錄控制項移除節點。
void RemoveCategory(CMFCPropertySheetCategoryInfo* pCategory);
參數
pCategory
[in]要移除之類別 (node) 的指標。
備註
使用這個方法可從樹狀目錄控件中移除也稱為類別的節點。 使用 CMFCPropertySheet::AddTreeCategory 方法,將節點新增至樹狀結構控件。
CMFCPropertySheet::RemovePage
從屬性工作表中移除屬性頁。
void RemovePage(CPropertyPage* pPage);
void RemovePage(int nPage);
參數
pPage
[in]屬性頁物件的指標,表示要移除的屬性頁。 不可以是 NULL。
nPage
[in]要移除的頁面以零起始的索引。
備註
這個方法會移除指定的屬性頁,並終結其相關聯的視窗。 pPage 參數指定的屬性頁對象在關閉 CMFCPropertySheet 視窗之前不會終結。
CMFCPropertySheet::SetIconsList
指定在 Outlook 窗格之導覽控制項中使用的映像清單。
BOOL SetIconsList(
UINT uiImageListResID,
int cx,
COLORREF clrTransparent=RGB(255, 0, 255));
void SetIconsList(HIMAGELIST hIcons);
參數
uiImageListResID
[in]映射清單的資源識別碼。
cx
[in]影像清單中的圖示寬度,以像素為單位。
clrTransparent
[in]透明影像色彩。 此色彩影像的部分會是透明的。 默認值為色彩洋紅,RGB(255,0,255)。
hIcons
[in]現有映像清單的句柄。
傳回值
在第一個方法多載語法中,如果此方法成功,則為TRUE;否則為 FALSE。
備註
如果屬性表的樣式為 outlook Microsoft,架構就會在屬性表左側顯示瀏覽按鈕清單,稱為 Outlook 窗格控件。 使用此方法可設定 Outlook 窗格控制件要使用的影像清單。
如需支援此方法之方法的詳細資訊,請參閱 CImageList::Create 和 CImageList::Add。 如需如何設定屬性表樣式的詳細資訊,請參閱 CMFCPropertySheet::SetLook。
CMFCPropertySheet::SetLook
指定屬性工作表的外觀。
void SetLook(
PropSheetLook look,
int nNavControlWidth=100);
參數
看
[in]其中一個列舉值,指定屬性表的外觀。 屬性表的預設樣式為 CMFCPropertySheet::PropSheetLook_Tabs
。 如需詳細資訊,請參閱本主題一節中的表格。
nNavControlWidth
[in]導覽控件的寬度,以像素為單位。 預設值是 100。
備註
若要以預設以外的樣式顯示屬性表,請先呼叫這個方法,再建立屬性表視窗。
下表列出可在look參數中指定的列舉值。
值 | Description |
---|---|
CMFCPropertySheet::PropSheetLook_Tabs |
(預設值)顯示每個屬性頁的索引標籤。 索引標籤會顯示在屬性表頂端,如果索引標籤數量超過單一數據列,則會堆疊。 |
CMFCPropertySheet::PropSheetLook_OutlookBar |
在屬性表左側的 Microsoft Outlook 列樣式中顯示導覽按鈕清單。 清單中的每個按鈕都會對應至屬性頁。 如果按鈕數目超過清單可見區域,架構會顯示卷動箭號。 |
CMFCPropertySheet::PropSheetLook_Tree |
在屬性表左側顯示樹狀控制件。 樹控件的每個父節點或子節點都會對應至屬性頁。 如果節點數目超過樹狀控件可見區域,架構會顯示卷動箭號。 |
CMFCPropertySheet::PropSheetLook_OneNoteTabs |
針對每個屬性頁,以 Microsoft OneNote 的樣式顯示索引標籤。 架構會在屬性表頂端顯示索引標籤,如果索引標籤數量超過單一數據列,則會捲動箭號。 |
CMFCPropertySheet::PropSheetLook_List |
在屬性表左側顯示清單。 每個清單項目都會對應至屬性頁。 如果清單項目數量超過清單的可見區域,架構會顯示卷動箭號。 |