CMFCPropertyGridCtrl选件类

添加本主题是为了让内容更加完整。有关更多信息,请参见所安装的 Visual Studio 的 VC\atlmfc\src\mfc 文件夹中的源代码。

支持可以公开属性按字母或分层顺序的可编辑属性网格控件。

class CMFCPropertyGridCtrl : public CWnd

成员

Bb983759.collapse_all(zh-cn,VS.110).gif公共构造函数

名称

说明

CMFCPropertyGridCtrl::CMFCPropertyGridCtrl

构造 CMFCPropertyGridCtrl 对象。

CMFCPropertyGridCtrl::~CMFCPropertyGridCtrl

析构函数。

Bb983759.collapse_all(zh-cn,VS.110).gif公共方法

名称

说明

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

调用由框架检索指定对象的当前状态。(重写 服务。)

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

指示属性网格控件的外观是否在使用.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

设置属性网格控件的外观用于与.NET的样式。

CMFCPropertyGridCtrl::UpdateColor

将当前选定的颜色属性的颜色值。

Bb983759.collapse_all(zh-cn,VS.110).gif受保护的方法

名称

说明

CMFCPropertyGridCtrl::AdjustLayout

重绘属性网格控件及其属性。

CMFCPropertyGridCtrl::CompareProps

调用由属性网格控件对属性进行排序。

CMFCPropertyGridCtrl::EditItem

调用由结构,当用户开始修改属性。

CMFCPropertyGridCtrl::EndEditItem

调用由结构,当用户停止修改属性。

CMFCPropertyGridCtrl::Init

调用framework初始化属性网格控件。

CMFCPropertyGridCtrl::OnChangeSelection

调用由框架,更改当前选择。

CMFCPropertyGridCtrl::OnClickButton

调用由结构,当属性单击按钮。

CMFCPropertyGridCtrl::OnDrawBorder

调用由框架在属性网格控件周围绘制边框。

CMFCPropertyGridCtrl::OnDrawDescription

调用由框架绘制声明区域和显示标题文本。

CMFCPropertyGridCtrl::OnDrawList

调用由框架公开属性列表在属性网格控件中。

CMFCPropertyGridCtrl::OnDrawProperty

调用由框架公开属性。

CMFCPropertyGridCtrl::OnPropertyChanged

调用由框架,更改属性的值。

CMFCPropertyGridCtrl::OnSelectCombo

调用由结构,当一个包含组合框控件的属性中选择。

CMFCPropertyGridCtrl::ValidateItemData

调用由结构验证特性数据。

备注

属性网格控件包含可编辑的属性从 CMFCPropertyGridProperty 选件类派生的 CMFCPropertyGridCtrl 选件类公开。每个属性可能表示类型,它可以包含子项。属性网格控件支持可调整大小的方面。可以显示选定的属性的描述的底部。

若要使用属性网格控件,请构造 CMFCPropertyGridCtrl 对象并调用 CMFCPropertyGridCtrl::Create 方法。使用 CMFCPropertyGridCtrl::AddProperty 方法将特性添加到列表。

选择属性

而不是表示值,属性项可以启动允许用户选择颜色、文件或字体的对话框。

下表列出了四个选择属性类型:

说明

CMFCPropertyGridProperty选件类

用于指定字符串的值的泛型属性,对于布尔值,日期等。

CMFCPropertyGridColorProperty选件类

用于选择颜色值的属性。

CMFCPropertyGridFileProperty选件类

用于选择文件的属性。

CMFCPropertyGridFontProperty选件类

用于选择字体的属性。

图示

下图演示显示属性采用以下两种方式的属性网格控件。第一个插图分层显示属性,第二个按字母顺序显示属性。

属性列表与属性表

示例

通过在 CMFCPropertyGridCtrl 选件类,中的各种方法下面的示例演示如何配置属性网格控件对象。示例演示如何启用标头控件,启用声明区域,并将属性网格控件的外观。该示例还演示如何设置控件的字母的架构,借助它由其属性名称包含的控件排序所有属性和如何设置属性网格控件的各个组件的自定义颜色。此示例是 新的控件示例的一部分。

    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

请参见

参考

层次结构图

其他资源

MFC 类