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
类中的各种方法添加选项、添加子项、启用属性和显示属性。 本示例是新控件示例的一部分。
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
类构造函数中指定的 varValue
、lpszEditMask
、lpszEditTemplate
、lpszValidChars
参数的值。 默认情况下,此方法支持 varValue
变体类型。 这包括 VT_BSTR
、VT_R4
、VT_R8
、VT_UI1
、VT_I2
、VT_INT
、VT_UINT
、VT_I4
、VT_UI2
、VT_UI4
和 VT_BOOL
。
如果指定了一个或多个 lpszEditMask
、lpszEditTemplate
或 lpszValidChars
参数,此方法将创建 CMFCMaskedEdit
控件;否则将创建 CEdit
控件。
CMFCPropertyGridProperty::CreateSpinControl
由框架调用,以创建可编辑的调节按钮控件。
virtual CSpinButtonCtrl* CreateSpinControl(CRect rectSpin);
参数
rectSpin
[in] 定义创建可编辑的调节按钮控件的位置的矩形。
返回值
指向强制转换为指向 CSpinButtonCtrl
对象的指针的新 CMFCSpinButtonCtrl
对象的指针。
备注
调用 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
要检索的属性列表项(选项)的从零开始的索引。
返回值
指向包含选项文本的字符串的指针。
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
要检索的属性的从零开始的索引。 如果此参数小于零或者大于或等于子属性数,则此参数无效。
返回值
指向属于此属性的子项的属性对象的指针。
- 或者 -
在零售模式下,如果 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*);
参数
[in] CMFCPropertyGridProperty*
\
备注
默认情况下,此方法不执行任何操作。
CMFCPropertyGridProperty::OnPosSizeChanged
virtual void OnPosSizeChanged(CRect);
参数
[in] 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;
返回值
如果当前属性是变体类型或值列表,并且此方法成功加载插入点 (I-beam) 鼠标光标,则为 TRUE
;否则为 FALSE
。
备注
此方法支持以下变体类型:VT_INT
、VT_I2
、VT_I4
、VT_UINT
、VT_UI1
、VT_UI2
、VT_UI4
、VT_R4
、VT_R8
和 VT_BSTR
。
CMFCPropertyGridProperty::OnSetSelection
virtual void OnSetSelection CMFCPropertyGridProperty*);
参数
[in] CMFCPropertyGridProperty*
\
备注
默认情况下,此方法不执行任何操作。
CMFCPropertyGridProperty::OnUpdateValue
当可编辑属性值已更改时由框架调用。
virtual BOOL OnUpdateValue();
返回值
如果此方法成功,则为 TRUE
;否则为 FALSE
。
CMFCPropertyGridProperty::PushChar
当已选择属性且用户输入新字符时,从属性列表控件调用。
virtual BOOL PushChar(UINT nChar);
参数
nChar
[in] 字符。
返回值
如果编辑操作仍在继续,则为 TRUE
;否则为 FALSE
。
备注
此方法支持一个属性,该属性是值列表或以下变体类型之一:VT_INT
、VT_I2
、VT_I4
、VT_UINT
、VT_UI1
、VT_UI2
、VT_UI4
、VT_R4
、VT_R8
和 VT_BSTR
。
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
。
返回值
备注
如果要移动指定的子项,请为 bDelete
参数指定 FALSE
;也就是说,删除子项,然后将其添加到其他位置。
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
。