CMFCPropertyGridProperty
類別
CMFCPropertyGridProperty
物件代表屬性清單控制件中的清單專案。
如需詳細資訊,請參閱 Visual Studio 安裝位置下之 mfc
資料夾中的原始程式碼。 例如: %ProgramFiles(x86)%\Microsoft Visual Studio\2019\Enterprise\VC\Tools\MSVC\14.29.30133\atlmfc\src\mfc
。
語法
class CMFCPropertyGridProperty : public CObject
成員
公用建構函式
名稱 | 描述 |
---|---|
CMFCPropertyGridProperty::CMFCPropertyGridProperty |
建構 CMFCPropertyGridProperty 物件。 |
CMFCPropertyGridProperty::~CMFCPropertyGridProperty |
解構函式。 |
公用方法
受保護的方法
名稱 | 描述 |
---|---|
CMFCPropertyGridProperty::CreateCombo |
由架構呼叫,以將下拉式方塊新增至 屬性。 |
CMFCPropertyGridProperty::HasButton |
指出屬性是否包含按鈕。 |
CMFCPropertyGridProperty::Init |
由架構呼叫以初始化屬性物件。 |
CMFCPropertyGridProperty::IsSubItem |
指出指定的屬性是否為目前屬性的子專案。 |
CMFCPropertyGridProperty::IsValueChanged |
指出目前屬性的值是否已變更。 |
CMFCPropertyGridProperty::OnCtlColor |
架構必須擷取筆刷以填滿屬性的背景色彩時呼叫。 |
CMFCPropertyGridProperty::OnDestroyWindow |
當屬性終結或編輯完成時,由架構呼叫。 |
CMFCPropertyGridProperty::OnKillFocus |
當 屬性失去輸入焦點時,由架構呼叫。 |
資料成員
名稱 | 描述 |
---|---|
CMFCPropertyGridProperty::m_strFormatDouble |
double 類型的值格式化字串。 |
CMFCPropertyGridProperty::m_strFormatFloat |
float 類型的值格式化字串。 |
CMFCPropertyGridProperty::m_strFormatLong |
long 類型的值格式字串。 |
CMFCPropertyGridProperty::m_strFormatShort |
為 short 類型的值格式化字串。 |
備註
CMFCPropertyGridProperty
使用物件來表示屬性,然後新增至屬性清單控制件。 如需詳細資訊,請參閱 CMFCPropertyGridCtrl
類別。
屬性物件可以代表數據類型,例如字串、日期和布爾值或整數值。 它可以包含子屬性,也可以包含控件,例如下拉式方塊或按鈕控件。
範例
下列範例示範如何建構 CMFCPropertyGridProperty
物件。 此範例也會示範如何使用 類別中的 CMFCPropertyGridProperty
各種方法來新增選項、新增子專案、啟用屬性,以及顯示屬性。 此範例是 New Controls 範例的一部分。
CMFCPropertyGridProperty *pGroup1 = new CMFCPropertyGridProperty(_T("Appearance"));
// construct a COleVariant object.
COleVariant var3DLook((short)VARIANT_FALSE, VT_BOOL);
pGroup1->AddSubItem(new CMFCPropertyGridProperty(_T("3D Look"), var3DLook,
_T("Specifies the dialog's font will be nonbold and controls will have a 3D border")));
CMFCPropertyGridProperty *pProp = new CMFCPropertyGridProperty(_T("Border"),
_T("Dialog Frame"), _T("One of: None, Thin, Resizable, or Dialog Frame"));
pProp->AddOption(_T("None"));
pProp->AddOption(_T("Thin"));
pProp->AddOption(_T("Resizable"));
pProp->AddOption(_T("Dialog Frame"));
pProp->AllowEdit(FALSE);
pGroup1->AddSubItem(pProp);
pGroup1->AddSubItem(new CMFCPropertyGridProperty(_T("Caption"), (COleVariant) _T("About NewControlsDemo"), _T("Specifies the text that will be displayed in the dialog's title bar")));
pGroup1->AdjustButtonRect();
pGroup1->AllowEdit();
pGroup1->Enable();
pGroup1->Show();
pGroup1->Redraw();
繼承階層架構
需求
標頭: afxpropertygridctrl.h
CMFCPropertyGridProperty::AddOption
將新的清單專案加入至屬性清單控制件。
BOOL AddOption(
LPCTSTR lpszOption,
BOOL bInsertUnique=TRUE);
參數
lpszOption
[in]要新增的清單專案(選項)。
bInsertUnique
[in] TRUE
只有在清單專案不存在時,才新增清單專案;否則為 FALSE
。 預設值是 TRUE
。
傳回值
TRUE
,這表示已新增清單專案。 否則, FALSE
這表示不會新增清單專案,因為 bInsertUnique
參數是 TRUE
,而且參數所 lpszOption
指定的清單專案已經存在。
CMFCPropertyGridProperty::AddSubItem
將子專案加入至 屬性。
BOOL AddSubItem(CMFCPropertyGridProperty* pProp);
參數
pProp
[in]要加入之屬性的指標。
傳回值
TRUE
如果成功將指定的屬性新增為子屬性,則為 。 FALSE
如果未新增 屬性,因為它已經發生在父屬性中。
備註
使用此方法建立父屬性和子屬性的階層式清單。 新增子屬性之後,父屬性會自動顯示由加號 (+) 指定的展開方塊控件。 當用戶選取加號時,父屬性會展開並顯示任何子屬性專案。
CMFCPropertyGridProperty::AdjustButtonRect
由父屬性清單控件呼叫,告知屬性調整內嵌按鈕周框的大小。
virtual void AdjustButtonRect();
備註
根據預設,這個方法:
- 調整按鈕寬度,等於按鈕的高度加上三個圖元。
- 將按鈕的周框移至屬性的右邊緣。
- 將按鈕 1 像素移位在 屬性的上邊緣下方。
CMFCPropertyGridProperty::AdjustInPlaceEditRect
擷取文字框的界限,以及用來設定屬性值的選擇性微調按鈕控制件。
virtual void AdjustInPlaceEditRect(
CRect& rectEdit,
CRect& rectSpin);
參數
rectEdit
[out]當這個方法傳回時,指定屬性值文本框界限的矩形。
rectSpin
[out]當這個方法傳回時,指定屬性值微調按鈕控件界限的矩形。 或者,如果 屬性不支援微調按鈕,則為空白矩形。
備註
屬性的值區域是由文本框和可能 的選項按鈕所組成,例如微調按鈕控件。 這個方法會計算文字框和單選按鈕的維度,然後在指定的參數中傳回這些值。
CMFCPropertyGridProperty::AllowEdit
讓屬性成為可編輯或唯讀的屬性。
void AllowEdit(BOOL bAllow=TRUE);
參數
bAllow
[in] TRUE
表示可編輯屬性; FALSE
將屬性設為唯讀。 預設值是 TRUE
。
CMFCPropertyGridProperty::CMFCPropertyGridProperty
建構 CMFCPropertyGridProperty
物件。
CMFCPropertyGridProperty(
const CString& strGroupName,
DWORD_PTR dwData=0,
BOOL bIsValueList=FALSE);
CMFCPropertyGridProperty(
const CString& strName,
const _variant_t& varValue,
LPCTSTR lpszDescr=NULL,
DWORD_PTR dwData=0,
LPCTSTR lpszEditMask=NULL,
LPCTSTR lpszEditTemplate=NULL,
LPCTSTR lpszValidChars=NULL);
參數
strGroupName
[in]組名。 群組是屬性方格控件中相關屬性的集合。 如果控件以階層方式顯示, 組名 會顯示為群組上方數據列中的類別標題。
dwData
[in]應用程式特定的數據,例如整數或與 屬性相關聯的其他數據的指標。 預設值為 0。
strName
[in]屬性的名稱。
varValue
[in]屬性值。
lpszDescr
[in]屬性描述。 預設值是 NULL
。
lpszEditMask
[in]如果屬性是遮罩的編輯控件,則為編輯遮罩。 預設值是 NULL
。
lpszEditTemplate
[in]如果屬性是遮罩的編輯控件,則為編輯範本。 預設值是 NULL
。
lpszValidChars
[in]如果屬性是遮罩的編輯控件,則為有效字元的清單。 預設值是 NULL
。
bIsValueList
[in] TRUE
如果 屬性代表值清單,則為 ; FALSE
如果 屬性代表單一值, 則為 。 預設值是 FALSE
。
CMFCPropertyGridProperty::CreateCombo
由架構呼叫,以將下拉式方塊新增至 屬性。
virtual CComboBox* CreateCombo(
CWnd* pWndParent,
CRect rect);
參數
pWndParent
[in]下拉式方塊之父視窗的指標。
rect
[in]下拉式方塊的周框。
傳回值
新 CComboBox
物件的指標。
CMFCPropertyGridProperty::CreateInPlaceEdit
由架構呼叫,以建立屬性的可編輯控制項。
virtual CWnd* CreateInPlaceEdit(
CRect rectEdit,
BOOL& bDefaultFormat);
參數
rectEdit
[in]可編輯控制件的周框。
bDefaultFormat
[in] TRUE
表示使用預設屬性格式來設定可編輯控件的文字;否則為 FALSE
。
傳回值
如果此方法成功,則為可編輯控件的指標;否則為 NULL
。
備註
這個方法會使用 類別建構函式中指定的 CMFCPropertyGridProperty
、lpszEditMask
、 lpszEditTemplate
和 lpszValidChars
參數值varValue
。 根據預設,這個方法支持 varValue
變體類型。 這包括 VT_BSTR
、VT_R4
、VT_INT
VT_I4
VT_UI1
VT_I2
VT_UI2
VT_UINT
VT_R8
、 VT_UI4
和 。VT_BOOL
如果指定了一或多個、 或 參數,這個方法就會CMFCMaskedEdit
建立控件,否則會建立CEdit
控制項。lpszValidChars
lpszEditTemplate
lpszEditMask
CMFCPropertyGridProperty::CreateSpinControl
由架構呼叫以建立可編輯的微調按鈕控制件。
virtual CSpinButtonCtrl* CreateSpinControl(CRect rectSpin);
參數
rectSpin
[in]定義可編輯微調按鈕控制項建立位置的矩形。
傳回值
新物件的指標 CMFCSpinButtonCtrl
,這個物件會轉換成物件的指標 CSpinButtonCtrl
。
備註
CMFCPropertyGridProperty::EnableSpinControl
呼叫 方法,以在屬性右邊緣顯示可編輯的微調按鈕控件。
CMFCPropertyGridProperty::Enable
啟用或停用屬性。
void Enable(BOOL bEnable=TRUE);
參數
bEnable
[in] TRUE
表示啟用 屬性; FALSE
以停用 屬性。 停用的屬性不會響應滑鼠或鍵盤輸入。 預設值是 TRUE
。
CMFCPropertyGridProperty::EnableSpinControl
啟用或停用用來修改屬性值的微調按鈕控制件。
void EnableSpinControl(
BOOL bEnable=TRUE,
int nMin=0,
int nMax=0);
參數
bEnable
[in] TRUE
表示啟用微調按鈕控制件; FALSE
以停用微調按鈕控制件。 預設值是 TRUE
。
nMin
[in]微調按鈕控制件的最小值。 預設值為 0。
nMax
[in]微調按鈕控件的最大值。 預設值為 0。
備註
架構會在即將編輯屬性時自動建立微調按鈕控制件。
建構函式參數CMFCPropertyGridProperty::CMFCPropertyGridProperty
所varValue
指定的屬性類型必須是支持的變體類型。 否則,這個方法會在偵錯模式中判斷提示。 支援的型別包括VT_INT
、、VT_UINT
VT_I2
、VT_I4
、VT_UI2
、 和 VT_UI4
。
CMFCPropertyGridProperty::Expand
展開或折疊包含子屬性的屬性。
void Expand(BOOL bExpand=TRUE);
參數
bExpand
[in] TRUE
表示展開 屬性; FALSE
折疊 屬性。 預設值是 TRUE
。
CMFCPropertyGridProperty::FormatProperty
格式化屬性值的文字表示法。
virtual CString FormatProperty();
傳回值
屬性值的文字表示。
備註
在顯示屬性值之前,架構會呼叫這個方法。
CMFCPropertyGridProperty::GetData
擷取 DWORD
與 屬性相關聯的值。
DWORD_PTR GetData() const;
傳回值
DWORD
值。
備註
傳回的數據是應用程式特定的值,例如數位或其他數據的指標。 當您建構 屬性或呼叫 CMFCPropertyGridProperty::SetData
方法時,請指定資料值。
CMFCPropertyGridProperty::GetDescription
擷取屬性描述。
const CString& GetDescription() const;
傳回值
包含屬性描述的文字字串。
備註
屬性清單控制件也會使用這個方法來顯示屬性的描述。
CMFCPropertyGridProperty::GetExpandedSubItems
擷取展開的子項目數目。
int GetExpandedSubItems(BOOL bIncludeHidden=TRUE) const;
參數
bIncludeHidden
[in] TRUE
表示在計數中包含隱藏的子專案;否則為 FALSE
。 預設值是 TRUE
。
傳回值
展開的子項目數目。
CMFCPropertyGridProperty::GetHierarchyLevel
擷取屬性階層層級之以零起始的索引。
int GetHierarchyLevel() const;
傳回值
屬性的階層式層級。
CMFCPropertyGridProperty::GetName
擷取屬性的名稱。
LPCTSTR GetName() const;
傳回值
包含屬性名稱的字串指標。
CMFCPropertyGridProperty::GetNameTooltip
由架構呼叫,以在工具提示中顯示屬性的名稱。
virtual CString GetNameTooltip();
傳回值
包含屬性名稱的字串。 根據預設,傳回值是空字串。
CMFCPropertyGridProperty::GetOption
擷取索引所指定之選項的文字。
LPCTSTR GetOption(int nIndex) const;
參數
nIndex
要擷取之屬性清單專案 (option) 之以零起始的索引。
傳回值
包含選項文字的字串指標。
CMFCPropertyGridProperty::GetOptionCount
擷取屬於屬性的選項數目。
int GetOptionCount() const;
傳回值
屬性控制件中包含的屬性清單項目數(選項)。
備註
CMFCPropertyGridProperty::AddOption
呼叫 方法,將專案新增至屬性清單。 CMFCPropertyGridProperty::RemoveAllOptions
呼叫 方法以移除所有專案。
CMFCPropertyGridProperty::GetOriginalValue
擷取目前屬性的初始值。
const COleVariant& GetOriginalValue() const;
傳回值
目前屬性的原始值。
備註
使用這個方法可復原變更目前屬性值的編輯作業效果。
目前屬性的原始值是由 CMFCPropertyGridProperty::CMFCPropertyGridProperty
建構函式所設定,由 CMFCPropertyGridProperty::SetOriginalValue
方法修改,並由方法重設 CMFCPropertyGridProperty::ResetOriginalValue
。
CMFCPropertyGridProperty::GetParent
擷取父屬性的指標。
CMFCPropertyGridProperty* GetParent() const;
傳回值
父屬性物件的指標,或 NULL
最上層屬性的指標。
CMFCPropertyGridProperty::GetRect
擷取屬性的周框。
CRect GetRect() const;
傳回值
CRect
物件,描述周框。
CMFCPropertyGridProperty::GetSubItem
擷取以零起始的索引所識別的子屬性。
CMFCPropertyGridProperty* GetSubItem(int nIndex) const;
參數
nIndex
[in]要擷取之屬性之以零起始的索引。 如果參數小於零或大於或等於子屬性的數目,則這個參數無效。
傳回值
屬性物件的指標,這個對像是這個屬性的子專案。
-或-
在零售模式中nIndex
,NULL
如果 參數無效。 在偵錯模式中,這個方法會判斷提示。
CMFCPropertyGridProperty::GetSubItemsCount
擷取子項目的數目。
int GetSubItemsCount() const;
傳回值
子項目的數目。
CMFCPropertyGridProperty::GetValue
擷取屬性值。
virtual const _variant_t& GetValue() const;
傳回值
包含屬性值的變體。
CMFCPropertyGridProperty::GetValueTooltip
由架構呼叫以擷取屬性值的文字表示,然後顯示在工具提示中。
virtual CString GetValueTooltip();
傳回值
CString
物件,包含屬性值的文字表示。 根據預設,此值為空字串。
CMFCPropertyGridProperty::HasButton
指出屬性是否包含按鈕。
virtual BOOL HasButton() const;
傳回值
TRUE
如果屬性包含按鈕(或屬性清單):否則為 FALSE
。
CMFCPropertyGridProperty::HitTest
指向對應至對應至點之屬性清單專案的屬性物件。
CMFCPropertyGridProperty* HitTest(
CPoint point,
CMFCPropertyGridProperty::ClickArea* pnArea=NULL);
CMFCPropertyGridProperty* HitTest(
CPoint pt,
CMFCPropertyGridProperty::ClickArea* pnArea=NULL,
BOOL bPropsOnly=FALSE) const;
參數
point
[in]用戶端座標中要測試的點。 此參數通常是目前的滑鼠指標位置。
pt
[in]用戶端座標中要測試的點。
pnArea
[out]當這個方法傳回時,表示包含指定點的區域。 如需詳細資訊,請參閱<備註>。 預設值是 NULL
。
bPropsOnly
[in] TRUE
以測試屬性控制件中的任何區域; FALSE
僅測試描述區域。 預設值是 FALSE
。
傳回值
屬性物件的指標或 NULL
。
備註
根據預設,如果在任何屬性專案內找不到指定的點,這個方法會測試屬性子專案。
下表列出可傳回至 pnArea
參數的值。
區域 | 描述 |
---|---|
ClickArea::ClickExpandBox |
展開方塊控件,由加號 (+) 指定。 |
ClickArea::ClickName |
屬性名稱。 |
ClickArea::ClickValue |
屬性值。 |
CMFCPropertyGridProperty::Init
由架構呼叫以初始化屬性物件。
void Init();
CMFCPropertyGridProperty::IsAllowEdit
指出屬性是否可編輯。
BOOL IsAllowEdit() const;
傳回值
TRUE
如果屬性可編輯,則為 ;否則 FALSE
為 。
CMFCPropertyGridProperty::IsEnabled
指出屬性是啟用還是停用。
BOOL IsEnabled() const;
傳回值
TRUE
如果屬性已啟用,則為 ; FALSE
如果屬性已停用,則為 。
備註
指出屬性是啟用還是停用。
CMFCPropertyGridProperty::IsExpanded
指出屬性是否已展開或折疊。
BOOL IsExpanded() const;
傳回值
TRUE
如果屬性已展開,則為 ; FALSE
如果屬性已折疊, 則為 。
CMFCPropertyGridProperty::IsGroup
指出目前屬性是否代表群組。
BOOL IsGroup() const;
傳回值
TRUE
如果目前的屬性物件代表群組,則為 ; FALSE
如果 屬性代表值,則為 。
備註
群組是屬性方格控件中相關屬性的集合。 如果控件以階層方式顯示, 組名 會顯示為群組上方數據列中的類別標題。
CMFCPropertyGridProperty::IsInPlaceEditing
指出目前屬性是否可編輯。
BOOL IsInPlaceEditing() const;
傳回值
TRUE
如果目前屬性可編輯,則為 ;否則為 FALSE
。
CMFCPropertyGridProperty::IsModified
指出目前屬性是否已修改。
BOOL IsModified() const;
傳回值
TRUE
如果屬性已修改,則為 ;否則為 FALSE
。
CMFCPropertyGridProperty::IsParentExpanded
指出目前屬性的父系是否已展開。
BOOL IsParentExpanded() const;
傳回值
TRUE
如果已展開目前屬性的所有父代,則為 ; FALSE
如果父屬性已折疊,則為 。
CMFCPropertyGridProperty::IsSelected
指出是否已選取目前屬性。
virtual BOOL IsSelected() const;
傳回值
TRUE
如果已選取目前屬性,則為 ;否則為 FALSE
。
CMFCPropertyGridProperty::IsSubItem
指出指定的屬性是否為目前屬性的子專案。
BOOL IsSubItem(CMFCPropertyGridProperty* pProp) const;
參數
pProp
[in]屬性的指標。
傳回值
TRUE
如果指定的屬性是目前屬性的子專案,則為 ;否則為 FALSE
。
CMFCPropertyGridProperty::IsValueChanged
指出目前屬性的值是否已變更。
virtual BOOL IsValueChanged() const;
傳回值
TRUE
如果目前屬性的值已變更,則為 ;否則為 FALSE
。
CMFCPropertyGridProperty::IsVisible
指出目前屬性是否可見。
BOOL IsVisible() const;
傳回值
TRUE
如果目前屬性為可見,則為 ;否則; FALSE
。
CMFCPropertyGridProperty::m_strFormatDouble
保留 double 類型的值格式字串。
static CString m_strFormatDouble;
CMFCPropertyGridProperty::m_strFormatFloat
保存 float 類型的值格式字串。
static CString m_strFormatFloat;
CMFCPropertyGridProperty::m_strFormatLong
保留 long 類型的值格式字串。
static CString m_strFormatLong;
CMFCPropertyGridProperty::m_strFormatShort
保留 short 類型的值格式字串。
static CString m_strFormatShort;
CMFCPropertyGridProperty::OnClickButton
當使用者選取屬性中包含的按鈕時,由架構呼叫。
virtual void OnClickButton(CPoint point);
參數
point
[in]用戶端座標中的點。
備註
根據預設,此方法不會執行任何動作。
CMFCPropertyGridProperty::OnClickName
當使用者選取屬性的名稱字段時,由父屬性清單控件呼叫。
virtual void OnClickName(CPoint C);
參數
C
[in]用戶端座標中的點。
備註
根據預設,此方法不會執行任何動作。
CMFCPropertyGridProperty::OnClickValue
當使用者選取屬性的值字段時,由父屬性清單控件呼叫。
virtual BOOL OnClickValue(
UINT uiMsg,
CPoint point);
參數
uiMsg
[in]滑鼠訊息。
point
[in]用戶端座標中的點。
傳回值
TRUE
如果這個方法會處理指定的滑鼠訊息,則為 ;否則為 FALSE
。
備註
根據預設,如果目前屬性無法編輯,這個方法會傳 FALSE
回 。 否則,與這個屬性相關聯的編輯或微調控件會處理指定的滑鼠訊息,然後這個方法會傳 TRUE
回 。
CMFCPropertyGridProperty::OnCloseCombo
當屬性中包含的下拉式方塊關閉時,由架構呼叫。
virtual void OnCloseCombo();
CMFCPropertyGridProperty::OnCtlColor
架構必須擷取筆刷以填滿屬性的背景色彩時呼叫。
virtual HBRUSH OnCtlColor(
CDC* pDC,
UINT nCtlColor);
參數
pDC
[in]裝置內容的指標。
nCtlColor
[in](不使用此參數。
傳回值
如果此方法成功,則為筆刷的句柄;否則為 NULL
。
CMFCPropertyGridProperty::OnDblClk
當使用者按兩下屬性時,由架構呼叫。
virtual BOOL OnDblClk(CPoint point);
參數
point
[in]用戶端座標中的點。
傳回值
TRUE
如果此方法成功,則為 ;否則為 FALSE
。
備註
根據預設,此方法會選取屬性清單控制件中的下一個屬性專案。
CMFCPropertyGridProperty::OnDestroyWindow
當屬性終結或編輯完成時,由架構呼叫。
virtual void OnDestroyWindow();
CMFCPropertyGridProperty::OnDrawButton
由架構呼叫以繪製 包含在屬性中的按鈕。
virtual void OnDrawButton(
CDC* pDC,
CRect rectButton);
參數
pDC
[in]裝置內容的指標。
rectButton
[in]周框,指定要繪製按鈕的位置。
CMFCPropertyGridProperty::OnDrawDescription
由架構呼叫以繪製屬性描述。
virtual void OnDrawDescription(
CDC* pDC,
CRect rect);
參數
pDC
[in]裝置內容的指標。
rect
[in]周框,指定要繪製屬性描述的位置。
備註
根據預設,此方法會在父屬性清單控制項所使用的字型中繪製屬性名稱和描述。 屬性描述是以一般樣式繪製,而屬性名稱是以粗體樣式繪製。
CMFCPropertyGridProperty::OnDrawExpandBox
由架構呼叫,以在包含子屬性的屬性附近繪製展開方塊控件。
virtual void OnDrawExpandBox(
CDC* pDC,
CRect rectExpand);
參數
pDC
[in]裝置內容的指標。
rectExpand
[in]周框,指定要繪製展開方塊控件的位置。
備註
選取展開方塊控件,以展開或折迭子屬性的清單。 展開方塊控件是由包含加號 (+) 或減號-的正方形所指定。 加號表示屬性可以展開以顯示子屬性的清單。 減號表示清單可以折疊,只顯示 屬性。
CMFCPropertyGridProperty::OnDrawName
由架構呼叫以顯示屬性名稱。
virtual void OnDrawName(
CDC* pDC,
CRect rect);
參數
pDC
[in]裝置內容的指標。
rect
[in]周框,指定要繪製屬性名稱的位置。
CMFCPropertyGridProperty::OnDrawValue
由架構呼叫以顯示屬性值。
virtual void OnDrawValue(
CDC* pDC,
CRect rect);
參數
pDC
[in]裝置內容的指標。
rect
[in]周框,指定要繪製屬性值的位置。
CMFCPropertyGridProperty::OnEdit
使用者即將修改屬性值時由架構呼叫。
virtual BOOL OnEdit(LPPOINT lptClick);
參數
lptClick
[in](不使用此參數。用戶端座標中指向點的指標。
傳回值
TRUE
如果編輯作業成功啟動,則為 ;否則為 FALSE
。
備註
當使用者即將修改屬性值時,架構會呼叫此函式。 根據預設,此方法會針對下拉式方塊控件或微調控件啟動適當的編輯器。
CMFCPropertyGridProperty::OnEndEdit
當使用者完成修改屬性值時,由架構呼叫。
virtual BOOL OnEndEdit();
傳回值
此方法一律會傳回 TRUE
。
備註
根據預設,這個方法會終結目前的編輯控制件,然後傳 TRUE
回 。
CMFCPropertyGridProperty::OnKillFocus
當 屬性失去輸入焦點時,由架構呼叫。
virtual BOOL OnKillFocus(CWnd*);
參數
CWnd
[in](未使用。視窗的指標。
傳回值
此方法一律會傳回 TRUE
。
備註
根據預設,此方法不會執行任何動作,然後傳 TRUE
回 。 如果您覆寫這個方法,當屬性失去輸入焦點時,如果架構可以結束編輯作業,則傳回 TRUE
。
CMFCPropertyGridProperty::OnKillSelection
virtual void OnKillSelection(CMFCPropertyGridProperty*);
參數
[輸入] CMFCPropertyGridProperty*
\
備註
根據預設,此方法不會執行任何動作。
CMFCPropertyGridProperty::OnPosSizeChanged
virtual void OnPosSizeChanged(CRect);
參數
[輸入] CRect
\
備註
根據預設,此方法不會執行任何動作。
CMFCPropertyGridProperty::OnRClickName
當使用者在屬性名稱區域中選取滑鼠右鍵時,由架構呼叫。
virtual void OnRClickName(CPoint C);
參數
C
[in]用戶端座標中的點。
備註
根據預設,此方法不會執行任何動作。
CMFCPropertyGridProperty::OnRClickValue
當使用者在屬性值區域中選取滑鼠右鍵時,由架構呼叫。
virtual void OnRClickValue(
CPoint C,
BOOL B);
參數
C
[in]用戶端座標中的點。
B
[in]布爾值。
備註
根據預設,此方法不會執行任何動作,而且 B
參數沒有預先定義的用途。
CMFCPropertyGridProperty::OnSelectCombo
當使用者從可編輯下拉式方塊中選取專案時,由架構呼叫。
virtual void OnSelectCombo();
備註
根據預設,此方法會使用所選項目的文字來更新屬性值。
CMFCPropertyGridProperty::OnSetCursor
當滑鼠指標移至屬性專案時,由架構呼叫。
virtual BOOL OnSetCursor() const;
傳回值
TRUE
如果目前屬性是變體類型或值清單,且此方法會成功載入插入點 (I-beam) 滑鼠游標;否則為 FALSE
。
備註
這個方法支援下列變體類型:VT_INT
、、、VT_UINT
VT_I4
VT_I2
、、VT_UI2
VT_UI4
VT_UI1
、 VT_R4
VT_R8
和 。VT_BSTR
CMFCPropertyGridProperty::OnSetSelection
virtual void OnSetSelection CMFCPropertyGridProperty*);
參數
[輸入] CMFCPropertyGridProperty*
\
備註
根據預設,此方法不會執行任何動作。
CMFCPropertyGridProperty::OnUpdateValue
當可編輯屬性的值變更時由架構呼叫。
virtual BOOL OnUpdateValue();
傳回值
TRUE
如果此方法成功,則為 ;否則為 FALSE
。
CMFCPropertyGridProperty::PushChar
當選取 屬性且使用者輸入新字元時,從屬性清單控件呼叫。
virtual BOOL PushChar(UINT nChar);
參數
nChar
[in]字元。
傳回值
TRUE
如果編輯作業仍在繼續,則為 ;否則為 FALSE
。
備註
這個方法支援值清單或下列其中一種變體類型的屬性:VT_INT
、、、VT_I4
、VT_UI1
VT_UI4
VT_UINT
VT_UI2
、VT_R8
VT_R4
和 。VT_BSTR
VT_I2
CMFCPropertyGridProperty::Redraw
重新繪製 屬性。
void Redraw();
CMFCPropertyGridProperty::RemoveAllOptions
從屬性中移除所有選項(專案)。
void RemoveAllOptions();
備註
選項也稱為屬性清單控制件的清單專案。
CMFCPropertyGridProperty::RemoveSubItem
拿掉指定的子專案。
BOOL RemoveSubItem(
CMFCPropertyGridProperty*& pProp,
BOOL bDelete=TRUE);
參數
pProp
[in]屬性子專案的指標。
bDelete
[in] TRUE
表示刪除 參數所 pProp
指定的屬性物件,否則 FALSE
為 。 預設值是 TRUE
。
傳回值
備註
FALSE
如果您想要移動指定的子專案,請指定 bDelete
參數;也就是說,請移除子項目,然後將它新增至別處。
CMFCPropertyGridProperty::ResetOriginalValue
還原已編輯屬性的原始值。
virtual void ResetOriginalValue();
CMFCPropertyGridProperty::SetData
將 DWORD
值與屬性產生關聯。
void SetData(DWORD_PTR dwData);
參數
dwData
[in]應用程式特定的32位值,例如整數或其他資料的指標。
備註
CMFCPropertyGridProperty::GetData
使用方法來擷DWORD
取值。 CMFCPropertyGridCtrl::FindItemByData
使用方法來找出與指定DWORD
值相關聯的屬性清單專案。
CMFCPropertyGridProperty::SetDescription
指定描述目前屬性的文字。
void SetDescription(const CString& strDescr);
參數
strDescr
[in]描述目前屬性的文字。
CMFCPropertyGridProperty::SetName
設定屬性的名稱。
void SetName(
LPCTSTR lpszName,
BOOL bRedraw=TRUE);
參數
lpszName
[in]屬性名稱。
bRedraw
[in] TRUE
表示立即重新繪製 屬性;否則為 FALSE
。 預設值是 TRUE
。
CMFCPropertyGridProperty::SetOriginalValue
設定可編輯屬性的原始值。
virtual void SetOriginalValue(const COleVariant& varValue);
參數
varValue
[in]值。
備註
CMFCPropertyGridProperty::ResetOriginalValue
使用方法來重設已編輯屬性的原始值。
CMFCPropertyGridProperty::SetValue
設定屬性方格屬性的值。
virtual void SetValue(const _variant_t& varValue);
參數
varValue
[in]要設定屬性之值的參考。
範例: SetValue
void SetPropBarValue(UINT propId, const DWORD& barPropDwordValue)
{
auto property = propertiesGridCtrlList.FindItemByData(propId);
if (property != nullptr)
{
property->SetValue(static_cast<_variant_t >(barPropDwordValue == 1)); // set value to true or false depending on dword value
}
}
CMFCPropertyGridProperty::Show
顯示或隱藏屬性。
void Show(
BOOL bShow=TRUE,
BOOL bAdjustLayout=TRUE);
參數
bShow
[in] TRUE
表示顯示目前屬性及其子專案; FALSE
以隱藏目前屬性及其子專案。 預設值是 TRUE
。
bAdjustLayout
[in] TRUE
若要重新計算如何繪製屬性的標籤和值,然後繪製 屬性; FALSE
表示使用現有的計算來繪製 屬性。 預設值是 TRUE
。