分享方式:


CMFCPropertyGridCtrl 類別

如需詳細資訊,請參閱位於 Visual Studio 安裝資料夾中的原始程式碼 mfc 。 例如: %ProgramFiles(x86)%\Microsoft Visual Studio\2019\Enterprise\VC\Tools\MSVC\14.29.30133\atlmfc\src\mfc

支援可依字母順序或階層順序顯示屬性的可編輯屬性方格控制項。

語法

class CMFCPropertyGridCtrl : public CWnd

成員

公用建構函式

名稱 描述
CMFCPropertyGridCtrl::CMFCPropertyGridCtrl 建構 CMFCPropertyGridCtrl 物件。
CMFCPropertyGridCtrl::~CMFCPropertyGridCtrl 解構函式。

公用方法

名稱 描述
CMFCPropertyGridCtrl::accHitTest 由架構呼叫以擷取畫面中給定點的子項目或子物件。 (覆寫 CWnd::accHitTest。)
CMFCPropertyGridCtrl::accLocation 由架構呼叫以擷取指定物件目前畫面的位置。 (覆寫 CWnd::accLocation。)
CMFCPropertyGridCtrl::accSelect 由架構呼叫以修改選取或移動指定物件的鍵盤焦點。 (覆寫 CWnd::accSelect。)
CMFCPropertyGridCtrl::AddProperty 將新的屬性加入至屬性方格控件。
CMFCPropertyGridCtrl::AlwaysShowUserToolTip
CMFCPropertyGridCtrl::CloseColorPopup 關閉色彩選取對話框。
CMFCPropertyGridCtrl::Create 建立屬性方格控件,並將它附加至屬性方格控件物件。
CMFCPropertyGridCtrl::DeleteProperty 從屬性方格控件刪除指定的屬性。
CMFCPropertyGridCtrl::DrawControlBarColors
CMFCPropertyGridCtrl::EnableDescriptionArea 啟用或停用屬性清單下方顯示的描述區域。
CMFCPropertyGridCtrl::EnableHeaderCtrl 啟用或停用屬性方格控件頂端的標頭控件。
CMFCPropertyGridCtrl::EnsureVisible 卷動屬性方格控件並展開屬性專案,直到可見指定的屬性為止。
CMFCPropertyGridCtrl::ExpandAll 展開或折疊所有屬性方格控件節點。
CMFCPropertyGridCtrl::FindItemByData 擷取與使用者定義 DWORD 值相關聯的屬性。
CMFCPropertyGridCtrl::get_accChild 由架構呼叫以擷取指定子系的 IDispatch 介面位址。 (覆寫 CWnd::get_accChild。)
CMFCPropertyGridCtrl::get_accChildCount 由架構呼叫以擷取屬於此物件的子物件數目。 (覆寫 CWnd::get_accChildCount。)
CMFCPropertyGridCtrl::get_accDefaultAction 由架構呼叫以擷取具有物件預設動作描述的字串。 (覆寫 CWnd::get_accDefaultAction。)
CMFCPropertyGridCtrl::get_accDescription 由架構呼叫以擷取含有指定物件的視覺外觀描述的字串。 (覆寫 CWnd::get_accDescription。)
CMFCPropertyGridCtrl::get_accFocus 由架構呼叫以擷取具有鍵盤焦點的物件。 (覆寫 CWnd::get_accFocus。)
CMFCPropertyGridCtrl::get_accHelp 由架構呼叫以擷取對象的 Help 屬性字串。 (覆寫 CWnd::get_accHelp。)
CMFCPropertyGridCtrl::get_accHelpTopic 由架構呼叫以擷取 WinHelp 檔 (與指定物件和該檔案中適切主題的識別項關聯) 的完整路徑。 (覆寫 CWnd::get_accHelpTopic。)
CMFCPropertyGridCtrl::get_accKeyboardShortcut 由架構呼叫以擷取指定物件的快速鍵或便捷鍵。 (覆寫 CWnd::get_accKeyboardShortcut。)
CMFCPropertyGridCtrl::get_accName 由架構呼叫以擷取指定物件的名稱。 (覆寫 CWnd::get_accName。)
CMFCPropertyGridCtrl::get_accRole 由架構呼叫以擷取含有指定物件的角色描述資訊。 (覆寫 CWnd::get_accRole。)
CMFCPropertyGridCtrl::get_accSelection 由架構呼叫以擷取此物件的選取子物件。 (覆寫 CWnd::get_accSelection。)
CMFCPropertyGridCtrl::get_accState 由架構呼叫以擷取指定物件的目前狀態。 (覆寫 CWnd::get_accState。)
CMFCPropertyGridCtrl::get_accValue 由架構呼叫以擷取指定物件的值。 (覆寫 CWnd::get_accValue。)
CMFCPropertyGridCtrl::GetBkColor 擷取目前屬性方格控件的背景色彩。
CMFCPropertyGridCtrl::GetBoldFont 以粗體樣式擷取目前屬性方格控件中文字的 Windows 字型。
CMFCPropertyGridCtrl::GetCurSel 擷取目前選取的屬性。
CMFCPropertyGridCtrl::GetCustomColors 擷取目前為屬性方格控件項目定義的自定義色彩。
CMFCPropertyGridCtrl::GetDescriptionHeight 擷取位於屬性方格控件底部的描述區域高度。
CMFCPropertyGridCtrl::GetDescriptionRows 擷取目前屬性方格控件描述區域中的數據列數目。
CMFCPropertyGridCtrl::GetHeaderCtrl 擷取架構用來顯示目前屬性方格控件的內部 CMFCHeaderCtrl 物件。
CMFCPropertyGridCtrl::GetHeaderHeight 擷取屬性方格控件標頭的高度。
CMFCPropertyGridCtrl::GetLeftColumnWidth 擷取目前屬性方格控件左欄的寬度,其中包含每個屬性的名稱。
CMFCPropertyGridCtrl::GetListRect 擷取屬性方格控件的周框。
CMFCPropertyGridCtrl::GetProperty 擷取屬性物件的指標,該對象對應至屬性方格控件專案的指定索引。
CMFCPropertyGridCtrl::GetPropertyColumnWidth 擷取包含屬性值的數據行目前寬度。
CMFCPropertyGridCtrl::GetPropertyCount 擷取屬性方格控件中的屬性數目。
CMFCPropertyGridCtrl::GetRowHeight 擷取屬性方格控件中數據列的高度。
CMFCPropertyGridCtrl::GetScrollBarCtrl 擷取屬性方格控件中滾動條控件的指標。 (覆寫 CWnd::GetScrollBarCtrl。)
CMFCPropertyGridCtrl::GetTextColor 擷取目前屬性方格控件中屬性專案的文字色彩。
CMFCPropertyGridCtrl::GetThisClass 由架構用來取得與這個類別類型相關聯之物件的指標 CRuntimeClass
CMFCPropertyGridCtrl::HitTest 擷取屬性物件的指標,如果指定的點位於專案中,則對應至屬性方格控件專案。 這個方法也會指出屬性方格控件中包含該點的區域。
CMFCPropertyGridCtrl::InitHeader 初始化架構用來顯示目前屬性方格控件的內部 CMFCHeaderCtrl 物件。
CMFCPropertyGridCtrl::IsAlphabeticMode 指出屬性方格控件是否處於字母模式。
CMFCPropertyGridCtrl::IsAlwaysShowUserToolTip
CMFCPropertyGridCtrl::IsDescriptionArea 指出是否顯示屬性方格控件的描述區域。
CMFCPropertyGridCtrl::IsGroupNameFullWidth 指出目前屬性方格控件的寬度是否顯示每個屬性組名。
CMFCPropertyGridCtrl::IsHeaderCtrl 指出是否顯示標頭控件。
CMFCPropertyGridCtrl::IsMarkModifiedProperties 指出屬性方格控件如何顯示修改的屬性。
CMFCPropertyGridCtrl::IsShowDragContext 指出當使用者調整數據行大小時,架構是否會重新繪製目前屬性方格控件的名稱和值數據行。
CMFCPropertyGridCtrl::IsVSDotNetLook 指出屬性方格控件的外觀是否為 VS .NET 所使用的樣式。
CMFCPropertyGridCtrl::MarkModifiedProperties 指定如何顯示修改的屬性。
CMFCPropertyGridCtrl::PreTranslateMessage 類別 CWinApp 用來轉譯視窗訊息,再將其分派至 TranslateMessageDispatchMessage Windows 函式。 (覆寫 CWnd::PreTranslateMessage。)
CMFCPropertyGridCtrl::RemoveAll 從屬性方格控件移除所有屬性物件。
CMFCPropertyGridCtrl::ResetOriginalValues 還原所有屬性的原始值。
CMFCPropertyGridCtrl::SetAlphabeticMode 設定或重設字母模式。
CMFCPropertyGridCtrl::SetBoolLabels 指定布爾值標籤的文字。
CMFCPropertyGridCtrl::SetCurSel 選取屬性方格控件中的屬性。
CMFCPropertyGridCtrl::SetCustomColors 指定各種屬性方格控件元素的自訂色彩。
CMFCPropertyGridCtrl::SetDescriptionRows 指定要顯示在目前屬性方格控件之描述區段中的數據列數目。
CMFCPropertyGridCtrl::SetGroupNameFullWidth 指定是否要在目前屬性方格控件中顯示屬性群組之類別名稱的完整寬度。
CMFCPropertyGridCtrl::SetListDelimiter 定義將做為屬性值清單中的分隔符的字元。
CMFCPropertyGridCtrl::SetShowDragContext 指定當使用者調整數據行大小時,架構是否會重新繪製目前屬性方格控件的名稱和值數據行。
CMFCPropertyGridCtrl::SetVSDotNetLook 將屬性方格控件的外觀設定為 VS .NET 中使用的樣式。
CMFCPropertyGridCtrl::UpdateColor 設定目前選取之色彩屬性的色彩值。

受保護的方法

名稱 描述
CMFCPropertyGridCtrl::AdjustLayout 重新繪製屬性方格控件及其屬性。
CMFCPropertyGridCtrl::CompareProps 由屬性方格控件呼叫以排序屬性。
CMFCPropertyGridCtrl::EditItem 當用戶開始修改 屬性時,由架構呼叫。
CMFCPropertyGridCtrl::EndEditItem 當使用者停止修改 屬性時,由架構呼叫。
CMFCPropertyGridCtrl::Init 由架構呼叫以初始化屬性方格控件。
CMFCPropertyGridCtrl::OnChangeSelection 當目前的選取範圍變更時,由架構呼叫。
CMFCPropertyGridCtrl::OnClickButton 按兩下屬性按鈕時,由架構呼叫。
CMFCPropertyGridCtrl::OnDrawBorder 由架構呼叫,以在屬性方格控件周圍繪製框線。
CMFCPropertyGridCtrl::OnDrawDescription 由架構呼叫以繪製描述區域,並顯示描述文字。
CMFCPropertyGridCtrl::OnDrawList 由架構呼叫以顯示屬性方格控件中的屬性清單。
CMFCPropertyGridCtrl::OnDrawProperty 由架構呼叫以顯示屬性。
CMFCPropertyGridCtrl::OnPropertyChanged 當屬性的值變更時,由架構呼叫。
CMFCPropertyGridCtrl::OnSelectCombo 選取包含下拉式方塊控件的屬性時,由架構呼叫。
CMFCPropertyGridCtrl::ValidateItemData 架構呼叫以驗證屬性數據。

備註

類別 CMFCPropertyGridCtrl 會顯示屬性方格控件,其中包含衍生自 類別的 CMFCPropertyGridProperty 可編輯屬性。 每個屬性都可以代表類型,而且可以包含子專案。 屬性方格控件支援底部可重設大小的區域,以顯示所選取屬性的描述。

若要使用屬性方格控件,請建構 CMFCPropertyGridCtrl 物件,然後呼叫 CMFCPropertyGridCtrl::Create 方法。 CMFCPropertyGridCtrl::AddProperty使用方法將屬性新增至清單。

選取屬性

屬性專案可以啟動對話框,讓用戶選取色彩、檔案或字型,而不是代表值。

下表列出四種選取屬性類型:

類別 描述
CMFCPropertyGridProperty 一般用途屬性,用來指定字串、布爾值、日期等等的值。
CMFCPropertyGridColorProperty 用來選取色彩值的屬性。
CMFCPropertyGridFileProperty 用來選取檔案的屬性。
CMFCPropertyGridFontProperty 用來選取字型的屬性。

插圖

下圖描述以兩種方式顯示屬性的屬性方格控件。 第一個圖例會以階層方式顯示屬性,而第二個圖例會依字母順序顯示屬性。

屬性清單 PropertySheet。

範例

下列範例示範如何使用 類別中的 CMFCPropertyGridCtrl 各種方法設定屬性方格控件物件。 此範例示範如何啟用標題控件、啟用描述區域,以及設定屬性方格控件的外觀。 此範例也會示範如何設定控件的字母模式,讓控件依屬性名稱排序它所包含的所有屬性,以及如何設定屬性方格控件各種專案的自定義色彩。 此範例是 New Controls 範例一部分。

CMFCPropertyGridCtrl m_wndPropList;
m_wndPropList.EnableHeaderCtrl();
m_wndPropList.EnableDescriptionArea();
m_wndPropList.SetVSDotNetLook(m_bDotNetLook);
// BOOL m_bMarkChanged
m_wndPropList.MarkModifiedProperties(m_bMarkChanged);
// BOOL m_bPropListCategorized
m_wndPropList.SetAlphabeticMode(!m_bPropListCategorized);
// BOOL m_bShowDragContext
m_wndPropList.SetShowDragContext(m_bShowDragContext);
// BOOL m_bMarkSortedColumn
m_wndList.EnableMarkSortedColumn(m_bMarkSortedColumn);
// BOOL m_bPropListCustomColors
// set custom colors for various elements of the property grid control
if (m_bPropListCustomColors)
{
   m_wndPropList.SetCustomColors(RGB(228, 243, 254), RGB(46, 70, 165), RGB(200, 236, 209), RGB(33, 102, 49), RGB(255, 229, 216), RGB(128, 0, 0), RGB(159, 159, 255));
}
else
{
   COLORREF c = (COLORREF)-1;
   m_wndPropList.SetCustomColors(c, c, c, c, c, c, c);
}

m_wndPropList.RedrawWindow();
// restore original values of the properties
m_wndPropList.ResetOriginalValues();

繼承階層架構

CObject

CCmdTarget

CWnd

CMFCPropertyGridCtrl

需求

標頭: afxpropertygridctrl.h

CMFCPropertyGridCtrl::accSelect

virtual HRESULT accSelect(
    long flagsSelect,
    VARIANT varChild);

參數

[輸入] flagsSelect
[輸入] varChild\

傳回值

備註

CMFCPropertyGridCtrl::AddProperty

將新的屬性加入至屬性方格控件。

int AddProperty(
    CMFCPropertyGridProperty* pProp,
    BOOL bRedraw=TRUE,
    BOOL bAdjustLayout=TRUE);

參數

pProp
[in]屬性的指標。

bRedraw
[in] TRUE 表示立即重新繪製 屬性;否則為 FALSE。 預設值是 TRUE

bAdjustLayout
[in] TRUE 若要重新計算如何繪製屬性的文字和值,然後繪製 屬性; FALSE 表示使用現有的計算來繪製 屬性。 預設值是 TRUE

傳回值

如果此方法成功,則屬性方格控件中加入屬性的位置以零起始的索引;否則為 -1。

備註

這個方法會將指標加入至屬性方格控件中屬性清單結尾的指定屬性。 請勿終結屬性,或允許它們超出範圍,再終結網格線控件。 當您完成屬性方格控件時,請呼叫 CMFCPropertyGridCtrl::RemoveAll 以刪除所有新增的屬性。 如果指定的屬性已經新增至清單,AddProperty 方法就會失敗。

CMFCPropertyGridCtrl::AdjustLayout

重新繪製屬性方格控件及其屬性。

virtual void AdjustLayout();

備註

此方法會重新計算如何繪製整個屬性方格控件及其屬性,包括影像、字型和控件。

CMFCPropertyGridCtrl::AlwaysShowUserToolTip

void AlwaysShowUserToolTip(BOOL bShow = TRUE);

參數

[輸入] bShow\

備註

CMFCPropertyGridCtrl::CloseColorPopup

關閉色彩選取對話框。

virtual void CloseColorPopup();

備註

如需色彩選取對話框的詳細資訊,請參閱 CMFCPropertyGridColorProperty 類別

CMFCPropertyGridCtrl::CMFCPropertyGridCtrl

建構 CMFCPropertyGridCtrl 物件。

CMFCPropertyGridCtrl();

傳回值

備註

CMFCPropertyGridCtrl::CompareProps

由屬性方格控件呼叫以排序屬性。

virtual int CompareProps(
    const CMFCPropertyGridProperty* pProp1,
    const CMFCPropertyGridProperty* pProp2) const;

參數

pProp1
屬性的指標。

pProp2
屬性的指標。

傳回值

傳回值 描述
< 0 參數的名稱 pProp1 小於參數的名稱 pProp2
0 參數的名稱 pProp1 等於參數的名稱 pProp2
> 0 對象的名稱 pProp1 大於參數的名稱 pProp2

備註

根據預設,此方法會使用 CString::Compare 方法來比較 CMFCPropertyGridProperty::m_strName 指定參數的成員。

CMFCPropertyGridCtrl::Create

建立屬性方格控件,並將它附加至屬性方格控件物件。

virtual BOOL Create(
    DWORD dwStyle,
    const RECT& rect,
    CWnd* pParentWnd,
    UINT nID);

參數

dwStyle
[in]視窗樣式位組合 「or」 (|) 。

rect
[in]周框,指定視窗的大小和位置,在的用戶端座標中 pParentWnd

pParentWnd
[in]父視窗的指標。 必須不是 NULL

nID
[in]子視窗的標識碼。

傳回值

TRUE 如果已成功建立視窗,則為 ;否則為 FALSE

備註

若要建立屬性方格控件,請先呼叫 CMFCPropertyGridCtrl::CMFCPropertyGridCtrl 以建構屬性方格物件。 然後呼叫 CMFCPropertyGridCtrl::Create

範例

下列範例示範如何在 類別中使用 Create CMFCPropertyGridCtrl 方法。 此範例是 New Controls 範例一部分。

// CRect rectPropList
// CMFCPropertyGridCtrl m_wndPropList
// The this pointer points to a CPage5 class which extends the CMFCPropertyPage class.
m_wndPropList.Create(WS_CHILD | WS_VISIBLE | WS_TABSTOP | WS_BORDER, rectPropList, this, (UINT)-1);

CMFCPropertyGridCtrl::DeleteProperty

從屬性方格控件刪除指定的屬性。

BOOL DeleteProperty(
    CMFCPropertyGridProperty*& pProp,
    BOOL bRedraw=TRUE,
    BOOL bAdjustLayout=TRUE);

參數

pProp
[in]屬性的指標。

bRedraw
[in] TRUE 重新繪製屬性方格控件;否則為 FALSE。 預設值是 TRUE

bAdjustLayout
[in] TRUE 若要重新計算如何繪製屬性方格控件中的所有文字、影像和專案,然後繪製控件;否則為 FALSE。 預設值是 TRUE

傳回值

TRUE 如果此方法成功,則為 ;否則為 FALSE

備註

使用這個方法可從屬性方格控件中刪除屬性和任何子專案。

CMFCPropertyGridCtrl::DrawControlBarColors

BOOL DrawControlBarColors() const;

傳回值

備註

CMFCPropertyGridCtrl::EditItem

當用戶開始修改 屬性時,由架構呼叫。

virtual BOOL EditItem(
    CMFCPropertyGridProperty* pProp,
    LPPOINT lptClick=NULL);

參數

pProp
[in]屬性的指標。

lptClick
[in]用戶按下以開始編輯作業的屬性方格控制件上的點。 此點位於控件的用戶端座標中。 預設值是 NULL

傳回值

TRUE 如果方法成功,則為 ;否則為 FALSE

備註

CMFCPropertyGridCtrl::EnableDescriptionArea

啟用或停用屬性方格控件中屬性清單底下顯示的描述區域。

void EnableDescriptionArea(BOOL bEnable=TRUE);

參數

bEnable
[in] TRUE 表示啟用描述區域; FALSE 以停用描述區域。 預設值是 TRUE

備註

描述區域會顯示在屬性方格控件的底部。 根據預設,描述區域會停用且看不到。

CMFCPropertyGridCtrl::EnableHeaderCtrl

啟用或停用屬性方格控件頂端的標頭控件。

void EnableHeaderCtrl(
    BOOL bEnable=TRUE,
    LPCTSTR lpszLeftColumn=_T("Property"),
    LPCTSTR lpszRightColumn=_T("Value"));

參數

bEnable
[in] TRUE 表示啟用標頭控件; FALSE 以停用標頭控件。 預設值是 TRUE

lpszLeftColumn
[in]標頭控件左欄的標題。 預設值是 Property

lpszRightColumn
[in]標頭控件右數據列的標題。 預設值是 Value

CMFCPropertyGridCtrl::EndEditItem

當使用者完成修改屬性時,由架構呼叫。

virtual BOOL EndEditItem(BOOL bUpdateData=TRUE);

參數

bUpdateData
[in] TRUE 表示在編輯作業完成時,必須驗證修改的屬性數據;否則為 FALSE。 預設值是 TRUE

傳回值

TRUE 如果編輯作業順利結束,則為 ; FALSE 如果修改的屬性資料無效,或編輯作業應該繼續,則為 。

備註

CMFCPropertyGridCtrl::EnsureVisible

卷動屬性方格控件並展開屬性專案,直到可見指定的屬性為止。

void EnsureVisible(
    CMFCPropertyGridProperty* pProp,
    BOOL bExpandParents=FALSE);

參數

pProp
[in]屬性的指標。

bExpandParents
[in] TRUE 表示展開父專案,讓指定的屬性可見;否則為 FALSE。 預設值為 FALSE

備註

CMFCPropertyGridCtrl::ExpandAll

展開或折疊所有屬性方格控件節點。

void ExpandAll(BOOL bExpand=TRUE);

參數

bExpand
[in] TRUE 表示展開所有節點; FALSE 表示折疊所有節點。 預設值是 TRUE

備註

CMFCPropertyGridCtrl::FindItemByData

擷取與使用者定義 DWORD 值相關聯的屬性。

CMFCPropertyGridProperty* FindItemByData(
    DWORD_PTR dwData,
    BOOL bSearchSubItems=TRUE) const;

參數

dwData
[in]值 DWORD

bSearchSubItems
[in] TRUE 搜尋屬性子專案;否則為 FALSE。 預設值是 TRUE

傳回值

如果此方法成功,則為相關聯屬性物件的指標;否則為 NULL

備註

使用建 CMFCPropertyGridCtrl::CMFCPropertyGridCtrl 構函式或 CMFCPropertyGridProperty::SetData 方法,將 與屬性產生關聯 DWORD

CMFCPropertyGridCtrl::get_accChildCount

virtual HRESULT get_accChildCount(long* pcountChildren);

參數

[輸入] pcountChildren\

傳回值

備註

CMFCPropertyGridCtrl::get_accFocus

virtual HRESULT get_accFocus(VARIANT* pvarChild);

參數

[輸入] pvarChild\

傳回值

備註

CMFCPropertyGridCtrl::get_accHelp

virtual HRESULT get_accHelp(
    VARIANT varChild,
    BSTR* pszHelp);

參數

[輸入] varChild
[輸入] pszHelp\

傳回值

備註

CMFCPropertyGridCtrl::get_accHelpTopic

virtual HRESULT get_accHelpTopic(
    BSTR* pszHelpFile,
    VARIANT varChild,
    long* pidTopic);

參數

[輸入] pszHelpFile
[輸入] varChild
[輸入] pidTopic\

傳回值

備註

CMFCPropertyGridCtrl::get_accKeyboardShortcut

virtual HRESULT get_accKeyboardShortcut(
    VARIANT varChild,
    BSTR* pszKeyboardShortcut);

參數

[輸入] varChild
[輸入] pszKeyboardShortcut\

傳回值

備註

CMFCPropertyGridCtrl::get_accSelection

virtual HRESULT get_accSelection(VARIANT* pvarChildren);

參數

[輸入] pvarChildren\

傳回值

備註

CMFCPropertyGridCtrl::GetBkColor

擷取目前屬性方格控件的背景色彩。

COLORREF GetBkColor() const;

傳回值

RGB 色彩值。

備註

這個方法會擷取架構用來繪製目前屬性方格控件背景的色彩。 方法會 CMFCPropertyGridCtrl::GetTextColor 擷取前景色彩。

CMFCPropertyGridCtrl::GetBoldFont

擷取用來以粗體樣式繪製目前屬性方格控件文字的 Windows 字型。

CFont& GetBoldFont();

傳回值

對象的參考 CFont ,描述粗體字型的特性。

CMFCPropertyGridCtrl::GetCurSel

擷取目前選取的屬性。

CMFCPropertyGridProperty* GetCurSel() const;

傳回值

屬性物件的指標,對應至屬性方格控件中選取的專案。

備註

CMFCPropertyGridCtrl::GetCustomColors

擷取目前為屬性方格控件項目定義的自定義色彩。

void GetCustomColors(
    COLORREF& clrBackground,
    COLORREF& clrText,
    COLORREF& clrGroupBackground,
    COLORREF& clrGroupText,
    COLORREF& clrDescriptionBackground,
    COLORREF& clrDescriptionText,
    COLORREF& clrLine);

參數

clrBackground
[out]屬性值的背景色彩。

clrText
[out]屬性名稱和屬性值文字的色彩。

clrGroupBackground
[out]屬性群組的背景色彩。

clrGroupText
[out]屬性群組中的文字色彩。

clrDescriptionBackground
[out]描述區域的背景色彩。

clrDescriptionText
[out]描述區域中文字的色彩。

clrLine
[out]在屬性之間繪製的線條色彩。

備註

CMFCPropertyGridCtrl::SetCustomColors使用方法來設定自訂色彩。

CMFCPropertyGridCtrl::GetDescriptionHeight

擷取描述區域的高度,其位於屬性方格控件的底部。

int GetDescriptionHeight() const;

傳回值

描述區域的高度,以像素為單位。

備註

描述區域的高度會自動計算,並設定為屬性方格控件的高度 1/4。

CMFCPropertyGridCtrl::EnableDescriptionArea使用方法來顯示或隱藏描述區域。 CMFCPropertyGridCtrl::IsDescriptionArea使用 方法來判斷描述區域是否顯示或隱藏。

CMFCPropertyGridCtrl::GetDescriptionRows

擷取目前屬性方格控件描述區域中的數據列數目。

int GetDescriptionRows() const;

傳回值

目前屬性方格控件描述區域中的數據列數目。

備註

建構函式會將 CMFCPropertyGridCtrl::CMFCPropertyGridCtrl 描述區域初始化為 3 個數據列。

CMFCPropertyGridCtrl::GetHeaderCtrl

擷取架構用來顯示目前屬性方格控件的內部 CMFCHeaderCtrl 物件。

virtual CMFCHeaderCtrl& GetHeaderCtrl();

傳回值

CMFCHeaderCtrl 物件的參考。

CMFCPropertyGridCtrl::GetHeaderHeight

擷取屬性方格控件標頭的高度。

int GetHeaderHeight() const;

傳回值

標頭的高度,以像素為單位。

備註

CMFCPropertyGridCtrl::GetLeftColumnWidth

擷取目前屬性方格控件左欄的寬度,其中包含每個屬性的名稱。

int GetLeftColumnWidth() const;

傳回值

名稱數據行的寬度。

備註

屬性方格控件的右數據行包含每個屬性的值。

CMFCPropertyGridCtrl::GetListRect

擷取屬性方格控件的周框。

CRect GetListRect() const;

傳回值

屬性方格控件的周框。 此回切不包含描述區域和標頭。

備註

CMFCPropertyGridCtrl::GetProperty

擷取屬性物件的指標,該對象對應至屬性方格控件中專案的指定索引。

CMFCPropertyGridProperty* GetProperty(int nIndex) const;

參數

nIndex
[in]屬性方格控件專案的以零起始的索引。

如果 nIndex 參數小於零或大於或等於屬性數目,這個方法會判斷提示。

傳回值

如果這個方法成功,則為對應至指定索引之屬性物件的指標;否則為 NULL

備註

CMFCPropertyGridCtrl::GetPropertyColumnWidth

擷取包含屬性值的數據行目前寬度。

int GetPropertyColumnWidth() const;

傳回值

包含屬性值之數據行的目前寬度。

備註

屬性方格控件右邊的數據行包含屬性值。 客戶可以使用屬性方格控件的分割方塊來變更值數據行的寬度。

CMFCPropertyGridCtrl::GetPropertyCount

擷取屬性方格控件中的屬性數目。

int GetPropertyCount() const;

傳回值

屬性的數目。

備註

CMFCPropertyGridCtrl::GetRowHeight

擷取屬性方格控件中數據列的高度。

int GetRowHeight() const;

傳回值

資料列的高度。

備註

列的高度等於目前的字型高度加上 4 圖元。

CMFCPropertyGridCtrl::GetScrollBarCtrl

擷取屬性方格控件中滾動條控件的指標。

virtual CScrollBar* GetScrollBarCtrl(int nBar) const;

參數

nBar
[in]捲動條的方向,必須是 SB_VERT

傳回值

捲動條物件的指標, NULL 如果沒有滾動條或滾動條方向為 ,則為 SB_HORZ

備註

使用此方法可直接存取垂直滾動條控件。

CMFCPropertyGridCtrl::GetTextColor

擷取用來繪製目前屬性方格控件中屬性專案文字的色彩。

COLORREF GetTextColor() const;

傳回值

RGB 色彩值。

備註

這個方法會擷取架構用來繪製目前屬性方格控件前景的色彩。 方法 CMFCPropertyGridCtrl::GetBkColor 會擷取背景色彩。

CMFCPropertyGridCtrl::HitTest

擷取屬性物件的指標,如果指定的點位於專案中,則對應至屬性方格控件專案。 這個方法也會指出屬性方格控件中包含該點的區域。

CMFCPropertyGridProperty* HitTest(
    CPoint pt,
    CMFCPropertyGridProperty::ClickArea* pnArea=NULL,
    BOOL bPropsOnly=FALSE) const;

參數

pt
[in]用戶端座標中的點。

pnArea
[in, out]變數的 ClickArea 指標。 當這個方法傳回時,變數會 指出包含指定點的屬性區域 。 如需屬性區域的詳細資訊,請參閱。

bPropsOnly
[in] TRUE 只測試屬性區域; FALSE 如果指定的點不在屬性區域中,則為測試 描述區域 。 預設值是 FALSE。 如需描述區域的詳細資訊,請參閱。

傳回值

bPropsOnly如果參數為 TRUE ,且指定的點位於屬性區域中,則傳回值是對應屬性物件的指標。 此外,參數 pnArea 會設定為包含指定點的特定區域。 否則,傳回值為 NULL ,而且 pnArea 不會修改 參數。

bPropsOnly如果 參數為 FALSE,則傳回值一律NULL為 。 不過,如果指定的點位於描述區域中,參數 pnArea 會設定為 CMFCPropertyGridProperty::ClickDescription

備註

屬性區域一詞是指屬性方格控件專案的任何名稱、值或展開方塊區域。 描述 區域 是屬性方格控件底部的區域。 當您選取屬性方格控件專案時,描述區域會顯示對應屬性的描述。

這個方法會設定參數指向的變數 pnArea 值。 下表列出可能的值和對應的區域。

區域
ClickArea::ClickExpandBox 屬性展開方塊控件。
ClickArea::ClickName 屬性名稱。
ClickArea::ClickValue 屬性值。
CMFCPropertyGridProperty::ClickDescription 屬性方格控件描述區域。

CMFCPropertyGridCtrl::Init

由架構呼叫以初始化屬性方格控件。

virtual void Init();

備註

CMFCPropertyGridCtrl::InitHeader

初始化架構用來顯示目前屬性方格控件的內部 CMFCHeaderCtrl 物件。

virtual void InitHeader();

CMFCPropertyGridCtrl::IsAlphabeticMode

指出屬性方格控件是否處於字母模式。

BOOL IsAlphabeticMode() const;

傳回值

TRUE 如果屬性方格控件處於字母模式,則為 ;否則 FALSE為 。

備註

當屬性方格控件處於字母模式時,所有屬性都會依其名稱依字母順序排序。 否則,屬性會分組在其父節點下。

CMFCPropertyGridCtrl::SetAlphabeticMode使用方法來啟用或停用字母模式。

CMFCPropertyGridCtrl::IsAlwaysShowUserToolTip

BOOL IsAlwaysShowUserToolTip() const;

傳回值

備註

CMFCPropertyGridCtrl::IsDescriptionArea

指出是否顯示屬性方格控件的描述區域。

BOOL IsDescriptionArea() const;

傳回值

TRUE 如果顯示描述區域,則為 ;否則為 FALSE

備註

CMFCPropertyGridCtrl::EnableDescriptionArea使用 方法來隱藏或顯示描述區域。

CMFCPropertyGridCtrl::IsGroupNameFullWidth

指出目前屬性方格控件的寬度是否顯示每個屬性組名。

BOOL IsGroupNameFullWidth() const;

傳回值

TRUE 如果組名顯示在屬性方格控件的寬度; FALSE 如果組名被控件的右 (value) 數據行截斷。

備註

群組是屬性方格控件中相關屬性的集合。 如果控件以階層方式顯示, 組名 會顯示為群組上方數據列中的類別標題。

CMFCPropertyGridCtrl::IsHeaderCtrl

指出是否顯示標頭控件。

BOOL IsHeaderCtrl() const;

傳回值

TRUE 如果顯示標頭控件,則為 ;否則 FALSE為 。

備註

CMFCPropertyGridCtrl::EnableHeaderCtrl使用 方法來隱藏或顯示標頭控件。

CMFCPropertyGridCtrl::IsMarkModifiedProperties

指出屬性方格控件如何顯示修改的屬性。

BOOL IsMarkModifiedProperties() const;

傳回值

TRUE 如果使用粗體樣式來顯示修改的屬性; FALSE 如果使用一般樣式來顯示修改的屬性。

備註

CMFCPropertyGridCtrl::IsShowDragContext

指出當使用者調整數據行大小時,架構是否會重新繪製目前屬性方格控件的名稱和值數據行。

BOOL IsShowDragContext() const;

傳回值

TRUE 如果架構在重設大小作業期間重新繪製名稱和值數據行,則為 ; FALSE 如果架構在拖曳作業完成之後重新繪製資料行,則為 。

備註

使用者可以拖曳數據行之間的分割列,以調整屬性方格控件的名稱和值數據行大小。 如果顯示拖曳內容,只要使用者拖曳分割列,就會調整名稱和值數據行的大小。 否則,分割列會移動,但在拖曳作業完成之前,不會重新繪製數據行。

CMFCPropertyGridCtrl::IsVSDotNetLook

指出屬性方格控件的外觀是否為Visual Studio.NET的樣式。

BOOL IsVSDotNetLook() const;

傳回值

TRUE 如果屬性方格控件位於Visual Studio.NET的樣式中,則為 ;否則為 FALSE

備註

使用 方法, CMFCPropertyGridCtrl::SetVSDotNetLook 將屬性方格控件設定為Visual Studio.NET的樣式。

CMFCPropertyGridCtrl::MarkModifiedProperties

指定如何顯示修改的屬性。

void MarkModifiedProperties(
    BOOL bMark=TRUE,
    BOOL bRedraw=TRUE);

參數

bMark
[in] TRUE 表示以粗體樣式顯示修改的屬性; FALSE 以一般樣式顯示修改的屬性。 預設值是 TRUE

bRedraw
[in] TRUE 表示立即重新繪製屬性方格控件;否則為 FALSE。 預設值是 TRUE

備註

CMFCPropertyGridCtrl::OnChangeSelection

當目前的選取範圍變更時,由架構呼叫。

virtual void OnChangeSelection(
    CMFCPropertyGridProperty* pNewSel,
    CMFCPropertyGridProperty* pOldSel);

參數

pNewSel
[in]新選取屬性的指標。

pOldSel
[in]先前選取之屬性的指標。

備註

此方法的預設實作不會執行任何動作。

CMFCPropertyGridCtrl::OnClickButton

按兩下屬性按鈕時,由架構呼叫。

virtual void OnClickButton(CPoint point);

參數

point
[in]用戶端座標中的點。

備註

根據預設,此方法會更新目前的屬性值。

CMFCPropertyGridCtrl::OnDrawBorder

由架構呼叫,以在屬性方格控件周圍繪製框線。

virtual void OnDrawBorder(CDC* pDC);

參數

pDC
[in]裝置內容的指標。

備註

CMFCPropertyGridCtrl::OnDrawDescription

由架構呼叫以繪製描述區域,並顯示描述文字。

virtual void OnDrawDescription(
    CDC* pDC,
    CRect rect);

參數

pDC
[in]裝置內容的指標。

rect
[in]矩形,指定要繪製描述區域的位置。

備註

CMFCPropertyGridCtrl::EnableDescriptionArea使用方法來顯示描述區域。

CMFCPropertyGridCtrl::OnDrawList

由架構呼叫以顯示屬性方格控件中的屬性清單。

virtual void OnDrawList(CDC* pDC);

參數

pDC
[in]裝置內容的指標。

備註

CMFCPropertyGridCtrl::OnDrawProperty

由架構呼叫以顯示屬性。

virtual int OnDrawProperty(
    CDC* pDC,
    CMFCPropertyGridProperty* pProp) const;

參數

pDC
[in]裝置內容的指標。

pProp
[in]屬性物件的指標。

傳回值

TRUE 如果此方法成功,則為 ;否則為 FALSE

備註

CMFCPropertyGridCtrl::OnPropertyChanged

當屬性的值變更時,由架構呼叫。

virtual void OnPropertyChanged(CMFCPropertyGridProperty* pProp) const;

參數

pProp
[in]屬性物件的指標,其值已變更。

備註

根據預設,這個方法會將 AFX_WM_PROPERTY_CHANGED 訊息傳送給屬性方格控件的擁有者。

CMFCPropertyGridCtrl::OnSelectCombo

選取包含下拉式方塊控件的屬性時,由架構呼叫。

void OnSelectCombo();

備註

CMFCPropertyGridCtrl::RemoveAll

從屬性方格控件移除所有屬性物件。

void RemoveAll();

備註

CMFCPropertyGridCtrl::ResetOriginalValues

還原所有屬性的原始值。

void ResetOriginalValues(BOOL bRedraw=TRUE);

參數

bRedraw
[in] TRUE 表示重新繪製屬性清單;否則為 FALSE。 預設值是 TRUE

備註

CMFCPropertyGridCtrl::SetAlphabeticMode

設定或重設字母模式。

void SetAlphabeticMode(BOOL bSet=TRUE);

參數

bSet
[in] TRUE 設定字母模式; FALSE 重設字母模式。 預設值是 TRUE

備註

當屬性方格控件處於字母模式時,控件會依其屬性名稱排序它所包含的所有屬性。

CMFCPropertyGridCtrl::SetBoolLabels

指定布爾值標籤的文字。

void SetBoolLabels(
    LPCTSTR lpszTrue,
    LPCTSTR lpszFalse);

參數

lpszTrue
[in]要針對 true 布爾值顯示的文字字串。

lpszFalse
[in]要針對 false 之布爾值顯示的文字字串。

備註

CMFCPropertyGridCtrl::SetCurSel

選取屬性方格控件中的屬性。

void SetCurSel(
    CMFCPropertyGridProperty* pProp,
    BOOL bRedraw=TRUE);

參數

pProp
[in]屬性物件的指標。

bRedraw
[in] TRUE 表示立即重新繪製屬性方格控件;否則為 FALSE。 預設值是 TRUE

備註

使用此方法取消屬性方格控件中目前項目的選取範圍,然後選取對應至指定屬性的專案。

CMFCPropertyGridCtrl::SetCustomColors

指定屬性方格控件各種專案的自訂色彩。

void SetCustomColors(
    COLORREF clrBackground,
    COLORREF clrText,
    COLORREF clrGroupBackground,
    COLORREF clrGroupText,
    COLORREF clrDescriptionBackground,
    COLORREF clrDescriptionText,
    COLORREF clrLine);

參數

clrBackground
[in]屬性值的背景色彩。

clrText
[in]屬性名稱和屬性值文字的色彩。

clrGroupBackground
[in]屬性群組的背景色彩。

clrGroupText
[in]屬性群組的新文字色彩。

clrDescriptionBackground
[in]描述區域的背景色彩。

clrDescriptionText
[in]描述區域中文字的色彩。

clrLine
[in]在屬性之間繪製的線條色彩。

備註

針對任何參數,請指定 ((COLORREF)-1) 色彩值,以針對屬性方格控件的元素使用預設色彩。

若要自定義特定屬性的外觀,請從 CMFCPropertyGridProperty 類別衍生類別,然後覆寫CMFCPropertyGridProperty::OnDrawNameCMFCPropertyGridProperty::OnDrawValueCMFCPropertyGridProperty::OnDrawExpandBoxCMFCPropertyGridProperty::OnDrawButton 方法。

CMFCPropertyGridCtrl::SetDescriptionRows

指定要顯示在目前屬性方格控件之描述區段中的數據列數目。

void SetDescriptionRows(int nDescRows);

參數

nDescRows
[in]要顯示在屬性描述中的資料列數目。

CMFCPropertyGridCtrl::SetGroupNameFullWidth

指定是否要在目前屬性方格控件中顯示屬性群組之類別名稱的完整寬度。

void SetGroupNameFullWidth(
    BOOL bGroupNameFullWidth = TRUE,
    BOOL bRedraw = TRUE);

參數

bGroupNameFullWidth
[in] TRUE 表示不論屬性名稱數據行的寬度為何,顯示類別名稱的完整寬度。 FALSE 表示將類別名稱的寬度限制為屬性名稱數據行的寬度。 預設值是 TRUE

bRedraw
[in] TRUE 表示立即更新屬性方格控件; FALSE 以在發生下一個重繪事件時更新 控制項。 預設值是 TRUE

備註

屬性方格控制件包含可 重設大小的屬性名稱 數據行和 屬性值數據 行。 名稱數據行的結尾也是值數據行的開頭。 若要調整數據行的大小,請在數據行之間拖曳框線。

這個方法中會交替使用組名和類別名稱的字詞 類別名稱會顯示在具有一組相關屬性和值的數據列上。 這個方法會指定屬性名稱數據行的寬度是否也指定顯示類別名稱的寬度。

CMFCPropertyGridCtrl::SetListDelimiter

定義在屬性值清單中做為分隔符的字元。

void SetListDelimiter(TCHAR c);

參數

c
[in]做為分隔符的字元。

備註

使用這個方法,在建構函式中使用的 CMFCPropertyGridProperty::CMFCPropertyGridProperty 屬性值清單中定義分隔符。 在該建構函式中,將 bIsValueList 參數設定為 TRUE

根據預設,建構函式會將 CMFCPropertyGridCtrl::CMFCPropertyGridCtrl 分隔符設定為逗號 (',')。

CMFCPropertyGridCtrl::SetShowDragContext

指定當使用者調整數據行大小時,架構是否會重新繪製目前屬性方格控件的名稱和值數據行。

void SetShowDragContext(BOOL bShowDragContext = TRUE);

參數

bShowDragContext
[in] TRUE 在重設大小作業期間重新繪製名稱和值數據行; FALSE 表示在拖曳作業完成之後重新繪製數據行。 預設值是 TRUE

備註

使用者可以拖曳數據行之間的分割列,以調整屬性方格控件的名稱和值數據行大小。 如果顯示拖曳內容,只要使用者拖曳分割列,就會調整名稱和值數據行的大小。 否則,分割列會移動,但在拖曳作業完成之前,不會重新繪製數據行。

CMFCPropertyGridCtrl::SetVSDotNetLook

將屬性方格控件的外觀設定為Visual Studio.NET 中使用的樣式。

void SetVSDotNetLook(BOOL bSet=TRUE);

參數

bSet
[in] TRUE 表示將屬性方格控件設定為 Visual Studio .NET 中使用的樣式;否則為 FALSE。 預設值是 TRUE

備註

CMFCPropertyGridCtrl::UpdateColor

設定目前選取之色彩屬性的色彩值。

virtual void UpdateColor(COLORREF color);

參數

color
[in]RGB 色彩值。

備註

如果屬性方格控件目前選取的屬性不是色彩屬性,這個方法會在偵錯模式中判斷提示。

CMFCPropertyGridCtrl::ValidateItemData

架構呼叫以驗證屬性數據。

virtual BOOL ValidateItemData(CMFCPropertyGridProperty* pProp);

參數

pProp
[in]屬性的指標。 不使用此參數。

傳回值

一律為 TRUE

備註

方法 CMFCPropertyGridCtrl::EndEditItem 會呼叫此方法來驗證數據。 根據預設,這個方法不會使用其 pProp 參數,而且其傳回值一律 TRUE為 。

如果您覆寫這個方法,則傳回 TRUE 指定的屬性數據是否有效。 否則,傳回 FALSE,在此情況下,架構不會更新 屬性。

另請參閱

階層架構圖表
類別