CMFCPropertyGridCtrl选件类
添加本主题是为了让内容更加完整。有关更多信息,请参见所安装的 Visual Studio 的 VC\atlmfc\src\mfc 文件夹中的源代码。
支持可以公开属性按字母或分层顺序的可编辑属性网格控件。
class CMFCPropertyGridCtrl : public CWnd
成员
公共构造函数
名称 |
说明 |
---|---|
构造 CMFCPropertyGridCtrl 对象。 |
|
CMFCPropertyGridCtrl::~CMFCPropertyGridCtrl |
析构函数。 |
公共方法
名称 |
说明 |
---|---|
CMFCPropertyGridCtrl::accHitTest |
调用由框架来检索子元素或子对象中给出的点在屏幕上。 (重写 CWnd::accHitTest。) |
CMFCPropertyGridCtrl::accLocation |
调用由框架检索指定对象的当前屏幕位置。 (重写 CWnd::accLocation。) |
调用由框架修改选择或移动指定对象的键盘焦点。 (重写 CWnd::accSelect。) |
|
添加新的属性到属性网格控件。 |
|
|
|
关闭颜色选择对话框。 |
|
创建一个属性网格控件并将它附加到属性网格控件对象。 |
|
从属性网格控件删除所指定的属性。 |
|
|
|
启用或禁用在属性列表中显示的标题区。 |
|
启用或禁用标头控件在属性网格控件的顶部。 |
|
将一个属性网格控件并展开属性项,直到所指定的属性可见。 |
|
展开或折叠所有属性网格控件节点。 |
|
检索与一个用户定义的 DWORD 值的属性。 |
|
CMFCPropertyGridCtrl::get_accChild |
调用由框架检索一 IDispatch 接口的地址指定的子级。 (重写 CWnd::get_accChild。) |
调用由框架检索属于该对象的子级的数目。 (重写 CWnd::get_accChildCount。) |
|
CMFCPropertyGridCtrl::get_accDefaultAction |
调用由框架检索描述对象的默认事件的字符串。 (重写 CWnd::get_accDefaultAction。) |
CMFCPropertyGridCtrl::get_accDescription |
调用由框架检索描述指定对象的可视外观的字符串。 (重写 CWnd::get_accDescription。) |
调用由框架检索具有键盘焦点的对象。 (重写 CWnd::get_accFocus。) |
|
调用由框架检索对象的 Help 特性字符串。 (重写 CWnd::get_accHelp。) |
|
调用由框架检索 WinHelp文件的完整路径与指定的对象和适当的主题的标识符在该文件中。 (重写 CWnd::get_accHelpTopic。) |
|
调用由框架检索指定对象的热键或访问键。 (重写 CWnd::get_accKeyboardShortcut。) |
|
CMFCPropertyGridCtrl::get_accName |
调用由框架检索指定对象的名称。 (重写 CWnd::get_accName。) |
CMFCPropertyGridCtrl::get_accRole |
调用由框架检索描述指定对象的角色信息。 (重写 CWnd::get_accRole。) |
调用由框架检索此对象的选定的子级。 (重写 CWnd::get_accSelection。) |
|
CMFCPropertyGridCtrl::get_accState |
调用由框架检索指定对象的当前状态。 (重写 服务。) |
CMFCPropertyGridCtrl::get_accValue |
调用由框架检索指定对象的值。 (重写 CWnd::get_accValue。) |
检索当前属性网格控件的背景色。 |
|
检索当前属性网格控件的文本以粗体样式的Windows字体。 |
|
检索当前所选的属性。 |
|
检索为属性网格控件元素当前定义的自定义颜色。 |
|
检索声明区域的高度位于属性网格控件的底部。 |
|
在当前属性网格控件的声明范围中检索行数。 |
|
检索框架使用显示当前属性网格控件的内部 CMFCHeaderCtrl 对象。 |
|
检索属性网格控件标头的高度。 |
|
检索当前属性网格控件的左边的列的宽度,包含每个属性的名称。 |
|
检索属性网格控件的边框。 |
|
检索指向对应于属性网格控件项的指定索引的属性对象。 |
|
检索包含属性值"列中的当前宽度。 |
|
检索属性数。属性网格控件中。 |
|
检索行的高度在属性网格控件中。 |
|
检索指向在属性网格控件的滚动条控件。 (重写 CWnd::GetScrollBarCtrl。) |
|
检索属性项文本的颜色在当前属性网格控件中。 |
|
CMFCPropertyGridCtrl::GetThisClass |
用于由框架获取指向与此选件类类型的 CRuntimeClass 对象。 |
检索指向对应于属性网格控件项目的属性对象,如果指定的点在项目。 此方法还指明了在包含该点的属性网格控件的区域。 |
|
初始化框架使用显示当前属性网格控件的内部 CMFCHeaderCtrl 对象。 |
|
指示属性网格控件是否在"按字母顺序显示模式。 |
|
|
|
指示属性网格控件的声明范围是否显示。 |
|
指示每个属性组名称是否可以在当前属性网格控件的宽度显示。 |
|
指示标头控件是否显示。 |
|
指示属性网格控件如何显示经过修改的属性。 |
|
指示框架是否重绘当前属性网格控件的名称和值"列中,当用户调整列。 |
|
指示属性网格控件的外观是否在使用.NET的样式。 |
|
指定如何显示已修改的属性。 |
|
CMFCPropertyGridCtrl::PreTranslateMessage |
用于使选件类 CWinApp 转换窗口消息,并在调度到 TranslateMessage 和 DispatchMessage Windows功能之前。 (重写 CWnd::PreTranslateMessage。) |
从属性网格控件中移除所有属性对象。 |
|
还原所有属性的初始值。 |
|
设置或重置字母的模式。 |
|
指定布尔值标签文本。 |
|
选择在属性网格控件的属性。 |
|
为各个属性网格控件元素指定自定义颜色。 |
|
在当前属性网格控件的声明部分指定要显示。 |
|
指定是否显示全角类别名称属性的一组在当前属性网格控件中。 |
|
定义要用作分隔符在属性列表中的字符。 |
|
指定框架是否重绘当前属性网格控件的名称和值"列中,当用户调整列。 |
|
设置属性网格控件的外观用于与.NET的样式。 |
|
将当前选定的颜色属性的颜色值。 |
受保护的方法
名称 |
说明 |
---|---|
重绘属性网格控件及其属性。 |
|
调用由属性网格控件对属性进行排序。 |
|
调用由结构,当用户开始修改属性。 |
|
调用由结构,当用户停止修改属性。 |
|
调用framework初始化属性网格控件。 |
|
调用由框架,更改当前选择。 |
|
调用由结构,当属性单击按钮。 |
|
调用由框架在属性网格控件周围绘制边框。 |
|
调用由框架绘制声明区域和显示标题文本。 |
|
调用由框架公开属性列表在属性网格控件中。 |
|
调用由框架公开属性。 |
|
调用由框架,更改属性的值。 |
|
调用由结构,当一个包含组合框控件的属性中选择。 |
|
调用由结构验证特性数据。 |
备注
属性网格控件包含可编辑的属性从 CMFCPropertyGridProperty 选件类派生的 CMFCPropertyGridCtrl 选件类公开。 每个属性可能表示类型,它可以包含子项。 属性网格控件支持可调整大小的方面。可以显示选定的属性的描述的底部。
若要使用属性网格控件,请构造 CMFCPropertyGridCtrl 对象并调用 CMFCPropertyGridCtrl::Create 方法。 使用 CMFCPropertyGridCtrl::AddProperty 方法将特性添加到列表。
选择属性
而不是表示值,属性项可以启动允许用户选择颜色、文件或字体的对话框。
下表列出了四个选择属性类型:
类 |
说明 |
---|---|
用于指定字符串的值的泛型属性,对于布尔值,日期等。 |
|
用于选择颜色值的属性。 |
|
用于选择文件的属性。 |
|
用于选择字体的属性。 |
图示
下图演示显示属性采用以下两种方式的属性网格控件。 第一个插图分层显示属性,第二个按字母顺序显示属性。
示例
通过在 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();
继承层次结构
要求
标头: afxpropertygridctrl.h