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::AddOption 将新列表项添加到属性列表控件。
CMFCPropertyGridProperty::AddSubItem 将子项添加到属性。
CMFCPropertyGridProperty::AdjustButtonRect 由父属性列表控件调用,以指示属性调整嵌入式按钮的边框的大小。
CMFCPropertyGridProperty::AdjustInPlaceEditRect 检索用于设置属性值的文本框和可选调节按钮控件的边界。
CMFCPropertyGridProperty::AllowEdit 使属性可编辑或只读。
CMFCPropertyGridProperty::CreateInPlaceEdit 由框架调用,以为属性创建可编辑的控件。
CMFCPropertyGridProperty::CreateSpinControl 由框架调用,以创建可编辑的调节按钮控件。
CMFCPropertyGridProperty::Enable 启用或禁用属性。
CMFCPropertyGridProperty::EnableSpinControl 启用或禁用用于修改属性值的调节按钮控件。
CMFCPropertyGridProperty::Expand 展开或折叠包含子属性的属性。
CMFCPropertyGridProperty::FormatProperty 设置属性值的文本表示形式的格式。
CMFCPropertyGridProperty::GetData 检索与属性关联的 DWORD 值。
CMFCPropertyGridProperty::GetDescription 检索属性说明。
CMFCPropertyGridProperty::GetExpandedSubItems 检索展开的子项数。
CMFCPropertyGridProperty::GetHierarchyLevel 检索属性层次结构级别的从零开始的索引。
CMFCPropertyGridProperty::GetName 检索属性的名称。
CMFCPropertyGridProperty::GetNameTooltip 由框架调用以在工具提示中显示属性的名称。
CMFCPropertyGridProperty::GetOption 检索由索引指定的选项的文本。
CMFCPropertyGridProperty::GetOptionCount 检索属于属性的选项数。
CMFCPropertyGridProperty::GetOriginalValue 检索当前属性的初始值。
CMFCPropertyGridProperty::GetParent 检索指向父属性的指针。
CMFCPropertyGridProperty::GetRect 检索属性的边框。
CMFCPropertyGridProperty::GetSubItem 检索由从零开始的索引标识的子属性。
CMFCPropertyGridProperty::GetSubItemsCount 检索子项数。
CMFCPropertyGridProperty::GetThisClass 由框架用于获取指向与此类类型关联的 CRuntimeClass 对象的指针。
CMFCPropertyGridProperty::GetValue 检索属性值。
CMFCPropertyGridProperty::GetValueTooltip 由框架调用,以检索随后显示在工具提示中的属性值的文本表示形式。
CMFCPropertyGridProperty::HitTest 指向对应于与某个点对应的属性列表项的属性对象。
CMFCPropertyGridProperty::IsAllowEdit 指示属性是否可编辑。
CMFCPropertyGridProperty::IsEnabled 指示是启用还是禁用属性。
CMFCPropertyGridProperty::IsExpanded 指示是展开还是折叠属性。
CMFCPropertyGridProperty::IsGroup 指示当前属性是否表示组。
CMFCPropertyGridProperty::IsInPlaceEditing 指示当前属性是否可编辑。
CMFCPropertyGridProperty::IsModified 指示是否已修改当前属性。
CMFCPropertyGridProperty::IsParentExpanded 指示是否已展开当前属性的父级。
CMFCPropertyGridProperty::IsSelected 指示是否已选择当前属性。
CMFCPropertyGridProperty::IsVisible 指示是否显示当前属性。
CMFCPropertyGridProperty::OnClickButton 当用户选择属性中包含的按钮时,由框架调用。
CMFCPropertyGridProperty::OnClickName 当用户选择属性的名称字段时,由父属性列表控件调用。
CMFCPropertyGridProperty::OnClickValue 当用户选择属性的值字段时,由父属性列表控件调用。
CMFCPropertyGridProperty::OnCloseCombo 当属性中包含的组合框关闭时,由框架调用。
CMFCPropertyGridProperty::OnDblClk 当用户双击属性时,由框架调用。
CMFCPropertyGridProperty::OnDrawButton 由框架调用,以绘制属性中包含的按钮。
CMFCPropertyGridProperty::OnDrawDescription 由框架调用,以显示属性说明。
CMFCPropertyGridProperty::OnDrawExpandBox 由框架调用,以在包含子属性的属性附近绘制展开框控件。
CMFCPropertyGridProperty::OnDrawName 由框架调用,以显示属性名称。
CMFCPropertyGridProperty::OnDrawValue 由框架调用以显示属性值。
CMFCPropertyGridProperty::OnEdit 当用户要修改属性值时由框架调用。
CMFCPropertyGridProperty::OnEndEdit 当用户完成修改属性值时,由框架调用。
CMFCPropertyGridProperty::OnKillSelection
CMFCPropertyGridProperty::OnPosSizeChanged
CMFCPropertyGridProperty::OnRClickName 当用户在属性名称区域中选择鼠标右键时,由框架调用。
CMFCPropertyGridProperty::OnRClickValue 当用户在属性值区域中选择鼠标右键时,由框架调用。
CMFCPropertyGridProperty::OnSelectCombo 当用户从可编辑的组合框中选择项时,由框架调用。
CMFCPropertyGridProperty::OnSetCursor 当鼠标指针移动到属性项时,由框架调用。
CMFCPropertyGridProperty::OnSetSelection
CMFCPropertyGridProperty::OnUpdateValue 当可编辑属性值已更改时由框架调用。
CMFCPropertyGridProperty::PushChar 当已选择属性且用户输入新字符时,从属性列表控件调用。
CMFCPropertyGridProperty::Redraw 重新绘制属性。
CMFCPropertyGridProperty::RemoveAllOptions 从属性中删除所有选项(项)。
CMFCPropertyGridProperty::RemoveSubItem 删除指定的子项。
CMFCPropertyGridProperty::ResetOriginalValue 还原已编辑属性的原始值。
CMFCPropertyGridProperty::SetData 将 DWORD 值与属性关联。
CMFCPropertyGridProperty::SetDescription 指定描述当前属性的文本。
CMFCPropertyGridProperty::SetName 设置属性的名称。
CMFCPropertyGridProperty::SetOriginalValue 设置可编辑属性的原始值。
CMFCPropertyGridProperty::SetValue 设置属性网格属性的值。
CMFCPropertyGridProperty::Show 显示或隐藏属性。

受保护方法

名称 描述
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();

继承层次结构

CObject

CMFCPropertyGridProperty

要求

标头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 类构造函数中指定的 varValuelpszEditMasklpszEditTemplatelpszValidChars 参数的值。 默认情况下,此方法支持 varValue 变体类型。 这包括 VT_BSTRVT_R4VT_R8VT_UI1VT_I2VT_INTVT_UINTVT_I4VT_UI2VT_UI4VT_BOOL

如果指定了一个或多个 lpszEditMasklpszEditTemplatelpszValidChars 参数,此方法将创建 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_INTVT_UINTVT_I2VT_I4VT_UI2VT_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_INTVT_I2VT_I4VT_UINTVT_UI1VT_UI2VT_UI4VT_R4VT_R8VT_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_INTVT_I2VT_I4VT_UINTVT_UI1VT_UI2VT_UI4VT_R4VT_R8VT_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

另请参阅

层次结构图

CMFCPropertyGridCtrl