MFC PropertyGrid 控件如何在visual studio 的对话框编辑器中工作?
How does the MFC PropertyGrid control work in the dialog editor in visual studio?
在 visual studio 对话框编辑器中,我可以将 MFC 属性 网格控件添加到 dailog。我如何自定义它的内容,并设置选项,比如允许用户在使用它的程序为 运行 时编辑它的内容,或者我如何使用 C++ 更改它的内容?
当我添加按钮或编辑控件之类的东西时,当程序为 运行 时,它会显示在 dailog 框中,而当我添加 MFC 属性 Grid 时,dailog 甚至不会显示。
这是 visual studio 对话框编辑器的图片和 dailog 中间的 MFC 属性 控件网格,其中的内容我不知道如何更改。
CMFCPropertyGridCtrl简单教程:
1.Create一个dialog-basedMFC工程,拖一个CMFCPropertyGridCtrl进去,调整大小。然后将控件的 ID 更改为 IDC_MFCPROPERTYGRID_TEST,并使用添加变量向控件添加一个变量 m_propertyGrid。将通知的设置更改为 True
。
Description Rows Count refers
到下面描述部分的行数。
Enable Description Area
表示是否开启后面的描述功能
Enable Header
表示是否开始表头。
Mark Modified Properties
表示是否高亮修改。
2.Set界面
在OnInitDialog()
中添加如下代码
HDITEM item;
item.cxy=120;
item.mask=HDI_WIDTH;
m_propertyGrid.GetHeaderCtrl().SetItem(0, new HDITEM(item));
- 添加内容
在OnInitDialog()
中添加如下代码
CMFCPropertyGridProperty* pProp2 = new CMFCPropertyGridProperty(
_T("choose"),
_T("select"),
_T(""));
pProp2->AddOption(_T("1"));
pProp2->AddOption(_T("2"));
pProp2->AddOption(_T("3"));
pProp2->AllowEdit(FALSE); //Editing of options is not allowed
m_propertyGrid.AddProperty(pProp2);
调用构造函数时传入的三个参数分别是item name
、default options
和description text
.
此外,您可以添加 drop-down 菜单:
CMFCPropertyGridProperty* pProp2 = new CMFCPropertyGridProperty(
_T("choose"),
_T("select"),
_T(""));
pProp2->AddOption(_T("1"));
pProp2->AddOption(_T("2"));
pProp2->AddOption(_T("3"));
pProp2->AllowEdit(FALSE); //Editing of options is not allowed
m_propertyGrid.AddProperty(pProp2);
另外还有三个类似的项目:
CMFCPropertyGridColorProperty * pProp3 = new CMFCPropertyGridColorProperty(
_T("colour"), RGB(0, 111, 200));
m_propertyGrid.AddProperty(pProp3);
CMFCPropertyGridFileProperty * pProp4 = new CMFCPropertyGridFileProperty(
_T("open file"), TRUE, _T("D:\test.txt"));
m_propertyGrid.AddProperty(pProp4);
LOGFONT font = { NULL };
CMFCPropertyGridFontProperty * pProp5 = new CMFCPropertyGridFontProperty(
_T("select font"), font);
m_propertyGrid.AddProperty(pProp5);
最后,这是最终的程序运行界面:
在 visual studio 对话框编辑器中,我可以将 MFC 属性 网格控件添加到 dailog。我如何自定义它的内容,并设置选项,比如允许用户在使用它的程序为 运行 时编辑它的内容,或者我如何使用 C++ 更改它的内容?
当我添加按钮或编辑控件之类的东西时,当程序为 运行 时,它会显示在 dailog 框中,而当我添加 MFC 属性 Grid 时,dailog 甚至不会显示。
这是 visual studio 对话框编辑器的图片和 dailog 中间的 MFC 属性 控件网格,其中的内容我不知道如何更改。
CMFCPropertyGridCtrl简单教程:
1.Create一个dialog-basedMFC工程,拖一个CMFCPropertyGridCtrl进去,调整大小。然后将控件的 ID 更改为 IDC_MFCPROPERTYGRID_TEST,并使用添加变量向控件添加一个变量 m_propertyGrid。将通知的设置更改为 True
。
Description Rows Count refers
到下面描述部分的行数。
Enable Description Area
表示是否开启后面的描述功能
Enable Header
表示是否开始表头。
Mark Modified Properties
表示是否高亮修改。
2.Set界面
在OnInitDialog()
HDITEM item;
item.cxy=120;
item.mask=HDI_WIDTH;
m_propertyGrid.GetHeaderCtrl().SetItem(0, new HDITEM(item));
- 添加内容
在OnInitDialog()
CMFCPropertyGridProperty* pProp2 = new CMFCPropertyGridProperty(
_T("choose"),
_T("select"),
_T(""));
pProp2->AddOption(_T("1"));
pProp2->AddOption(_T("2"));
pProp2->AddOption(_T("3"));
pProp2->AllowEdit(FALSE); //Editing of options is not allowed
m_propertyGrid.AddProperty(pProp2);
调用构造函数时传入的三个参数分别是item name
、default options
和description text
.
此外,您可以添加 drop-down 菜单:
CMFCPropertyGridProperty* pProp2 = new CMFCPropertyGridProperty(
_T("choose"),
_T("select"),
_T(""));
pProp2->AddOption(_T("1"));
pProp2->AddOption(_T("2"));
pProp2->AddOption(_T("3"));
pProp2->AllowEdit(FALSE); //Editing of options is not allowed
m_propertyGrid.AddProperty(pProp2);
另外还有三个类似的项目:
CMFCPropertyGridColorProperty * pProp3 = new CMFCPropertyGridColorProperty(
_T("colour"), RGB(0, 111, 200));
m_propertyGrid.AddProperty(pProp3);
CMFCPropertyGridFileProperty * pProp4 = new CMFCPropertyGridFileProperty(
_T("open file"), TRUE, _T("D:\test.txt"));
m_propertyGrid.AddProperty(pProp4);
LOGFONT font = { NULL };
CMFCPropertyGridFontProperty * pProp5 = new CMFCPropertyGridFontProperty(
_T("select font"), font);
m_propertyGrid.AddProperty(pProp5);
最后,这是最终的程序运行界面: