MFC Feature Pack CMFCPropertyGridCtrl 控件的例子

1.       在对话框头文件中声明以下几个公有(public)成员变量。

public:

         virtual BOOL OnInitDialog();

public:

         CMFCPropertyGridCtrl m_propertyGrid;

//

         CMFCPropertyGridProperty* pGroup11;

         CMFCPropertyGridProperty* pGroup12;

         CMFCPropertyGridProperty* pGroup21;

//

2.       在对话框类实现文件的OnInitDialog函数中添加以下代码

CDialog::OnInitDialog();

         // TODO: Add extra initialization here

         CRect rectPropList;

         GetClientRect(&rectPropList);

         MapWindowPoints(this, &rectPropList);

//

         m_propertyGrid.Create(WS_CHILD | WS_VISIBLE | WS_TABSTOP | WS_BORDER, rectPropList, this, (UINT)-1);

         m_propertyGrid.EnableHeaderCtrl(TRUE, _T("属性"),_T("取值"));

         m_propertyGrid.EnableDescriptionArea(TRUE);

//

         m_propertyGrid.SetVSDotNetLook(TRUE);

         m_propertyGrid.MarkModifiedProperties(TRUE);

         m_propertyGrid.SetAlphabeticMode(FALSE);

         m_propertyGrid.SetShowDragContext(TRUE);

//1   

         pGroup11 = new CMFCPropertyGridProperty(_T("输入重定向));

         pGroup11->AddSubItem(new CMFCPropertyGridProperty(_T("子项目1"),

                   _T("25.36"), _T("This is a description")));

//

         m_propertyGrid.AddProperty(pGroup11);

//2

         pGroup12 = new CMFCPropertyGridProperty(_T("输出重定向"));

         pGroup12->AddSubItem(new CMFCPropertyGridProperty(_T("子项目2"),

                            _T("25.36"),   _T("This is a description")));

//

         m_propertyGrid.AddProperty(pGroup12);

        

//3

         pGroup21 = new CMFCPropertyGridProperty(_T("处理深度段"));

         pGroup21->AddSubItem(new CMFCPropertyGridProperty(_T("起始深度"),_T("99.3"), _T("处理起始深度")));

         pGroup21->AddSubItem(new CMFCPropertyGridProperty(_T("结束深度"),_T("99.4"), _T("处理结束深度")));

//

         m_propertyGrid.AddProperty(pGroup21);

//

3.效果


4.获取用户输入值的方法

CMFCPropertyGridProperty *pProperty;//定义一个指向子项的指针

    //输入重定向   

    pProperty=pGroup11->GetSubItem(0) ;//获得子项的指针

// pGroup11在对话框头文件中定义(公有成员变量)

    const COleVariant &strValue=pProperty->GetValue();//获得子项值

               CString strTmp =(CString)strValue;

                    MessageBox( strTmp);

MSDN:

http://msdn.microsoft.com/en-us/library/bb983759.aspx

Visual Studio 2008 SP1/ 2010

posted on 2012-04-25 11:05  wqj1212  阅读(2783)  评论(0编辑  收藏  举报

导航