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::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 類 |
用來選取字型的屬性。 |
插圖
下圖描述以兩種方式顯示屬性的屬性方格控件。 第一個圖例會以階層方式顯示屬性,而第二個圖例會依字母順序顯示屬性。
範例
下列範例示範如何使用 類別中的 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();
繼承階層架構
需求
標頭: 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::OnDrawName
、 CMFCPropertyGridProperty::OnDrawValue
CMFCPropertyGridProperty::OnDrawExpandBox
和 CMFCPropertyGridProperty::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
,在此情況下,架構不會更新 屬性。