http://blog.csdn.net/sunnyloves/article/details/5655575

在DLG中的基本应用 。

首先在Cxxdlg.h文件中加入

public:
 CMFCPropertyGridCtrl  m_MFCPGCtrl;
 CMFCPropertyGridProperty* pGroup1;
 CMFCPropertyGridProperty* pGroup2;

然后Cxxdlg.cpp中的OnInitDialog()中

CRect rc;
 GetClientRect(rc);
 rc.bottom -= 50;
 rc.left += 50;
 rc.right -= 50;

m_MFCPGCtrl.Create(WS_CHILD | WS_VISIBLE | WS_TABSTOP | WS_BORDER,rc,this,IDC_CMFCPGCTRL);
 m_MFCPGCtrl.EnableHeaderCtrl(true,_T("参数"),_T("值"));
 m_MFCPGCtrl.EnableDescriptionArea();
 m_MFCPGCtrl.SetVSDotNetLook();
 m_MFCPGCtrl.MarkModifiedProperties();

m_MFCPGCtrl.SetAlphabeticMode(false);
 
 m_MFCPGCtrl.SetShowDragContext();

pGroup1 = new CMFCPropertyGridProperty(_T("参数组1"));
 pGroup2 = new CMFCPropertyGridProperty(_T("参数组2"));
 pGroup3 = new CMFCPropertyGridProperty(_T("参数组3"));

pGroup1->AddSubItem(new CMFCPropertyGridProperty(_T("参数1"),_T("2.5"),_T("这是参数1的说明")));
 pGroup1->AddSubItem(new CMFCPropertyGridProperty(_T("参数2"),_T("3.5"),_T("这是参数2的说明")));
 pGroup2->AddSubItem(new CMFCPropertyGridProperty(_T("参数3"),_T("4.5"),_T("这是参数3的说明")));
 pGroup2->AddSubItem(new CMFCPropertyGridProperty(_T("参数4"),_T("5.5"),_T("这是参数4的说明")));
 pGroup3->AddSubItem(new CMFCPropertyGridFileProperty(_T("选择文件"), TRUE, _T("D://defaule.csv"), _T("csv"), NULL, _T("csv Files(*.csv)|*.csv|All Files(*.*)|*.*||"), _T("选择csv文件")));//选择文件按钮

m_MFCPGCtrl.AddProperty(pGroup1);
 m_MFCPGCtrl.AddProperty(pGroup2);
 m_MFCPGCtrl.AddProperty(pGroup3);

m_MFCPGCtrl.ExpandAll();

就ok了

下面说下 通过消息活动输入值和输入的位置

.h中加入

afx_msg LRESULT OnPropertyChanged(WPARAM,LPARAM);

.cpp中加入红色

BEGIN_MESSAGE_MAP(CCMFCPGCtrlDlg, CDialog)
 ON_WM_SYSCOMMAND()
 ON_WM_PAINT()
 ON_WM_QUERYDRAGICON()
 //}}AFX_MSG_MAP
 ON_REGISTERED_MESSAGE(AFX_WM_PROPERTY_CHANGED, OnPropertyChanged)
END_MESSAGE_MAP()

然后添加函数

LRESULT CCMFCPGCtrlDlg::OnPropertyChanged (WPARAM,LPARAM lParam)
{
 CMFCPropertyGridProperty* pProp = (CMFCPropertyGridProperty*) lParam;
 
 int i = (int) pProp->GetData ();
 
 CString s = pProp->GetName();  //被改变的参数名
 COleVariant t = pProp->GetValue(); //改变之后的值
 t = pProp->GetOriginalValue();  //改变之前的值
 CString d;
 
 d = t.bstrVal;      //从COleVariant到CString

return 0;
}

选项里添加ComboBox 也很方便

CMFCPropertyGridProperty* pProp = new CMFCPropertyGridProperty(_T("边框"), _T("Dialog Frame"), _T("其中之一: 无(None)、细(Thin)、可调整大小(Resizable)、对话框外框(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);

就可以有combox出来了

VS2008下使用 CMFCPropertyGridCtrl 转载的更多相关文章

  1. 在VS2008环境下编写C语言DLL,并在C++和C#项目下调用 (转载)

    1.编写DLL a)文件--打开--新建项目--Win32,右侧Win32项目,填写好项目名称,点击"下一步", 应用程序类型选择:"DLL(D)",附加选项: ...

  2. TrueCrypt简介及TrueCrypt 7.1a Source.zip源码在VS2008下的编译过程

    转载:http://blog.csdn.net/cncrypt/article/details/51565493 转载:http://www.cnblogs.com/shenjieblog/p/521 ...

  3. VS2008下,aspx页面设计模式消失,只有黑白字体

    版权声明:本文为博主原创文章,未经博主允许不得转载. RT,在工具选项里面重新设定的时候,报错,说一部分文件无法安装. 寻找一晚上,终于有了解决方案,供以后参考. luanwey(大陆响尾蛇)(不做温 ...

  4. CentOS下安装JDK7 转载

    转载地址:http://www.cnblogs.com/rilley/archive/2012/02/02/2335395.html CentOS下安装JDK7 下载地址:http://www.ora ...

  5. IIS Express 及 vs2008下使用IIS Express

    介绍 IIS Express 开发 ASP.NET 的应用程序是我的主要工作.当然我会选择最适合的开发环境.客户多属于企业用户,我的开发的选择,多半是 ASP.NET Web Application ...

  6. ffmpeg基础与编译_在VS2008下调试output_example.c(详细步骤)

    注意:这个是编译Debug版本的.必要资源:FFMPEG SDK 3.2(已经编译好的,可以去http://www.bairuitech.com/html/ruanjianxiazai/ffmpeg/ ...

  7. 【流媒體】live555—VS2008 下live555编译、使用及测试

    [流媒體]live555—VS22008 下live555编译.使用及测试 Ⅰ live555简介 Live555 是一个为流媒体提供解决方案的跨平台的C++开源项目,它实现了对标准流媒体传输协议如R ...

  8. vs2008下使用libcurl

    网上找了半天,总算找到一个比较好用的C++ 网络库,老实说,完全用Socket操作网络对于需要开发网络应用程序的人员来说还是很蛋疼很繁琐的.好在有这么一个给力的库.这个库的介绍可以自己百度一下,就我所 ...

  9. 闲来瞎扯 -- 在vs2008下编写linux程序

    虽说vim很强大,但是个人感觉器代码提示功能不如visual assist来的强大.如何使用visual assist来实现代码的提示功能呢? 首先说明我的环境 : 宿主机是xp(O(∩_∩)O~还是 ...

随机推荐

  1. discuzx完全自定义设计模板门户首页,栏目,专题模板方法

    第一种:门户首页模板(index.htm,保存于templatedefaultportal) <!--{subtemplate common/header}--> <style id ...

  2. 如何优化C语言代码(程序员必读)

    1.选择合适的算法和数据结构 应该熟悉算法语言,知道各种算法的优缺点,具体资料请参见相应的参考资料,有很多计算机书籍上都有介绍.将比较慢的顺序查找法用较快的二分查找或乱序查找法代替,插入排序或冒泡排序 ...

  3. PowerDesigner(三)-企业架构模型(转)

    企业架构模型(Enterprise Architecture Model,EAM)是PowerDesigner 15新增的功能,它能够以图形的方式展现企业架构,从而取代文字描述:以偏向非技术性的表达方 ...

  4. iis7/7.5设置上传文件最大大小

    本编今天接到一个客户的修改,说一个68M的pdf文件上传不上去,但是我本地开启断点调试了好几遍,都没有问题,能正常上传文件,由此确定不是代码问题.然后我试着上传5M左右的pdf却能正常的上传,然后上传 ...

  5. asp.net 认证与授权

    1.下面的例子在web.config文件中配置网站使用asp.net forms 身份认证方式: <configuration> <system.web> <authen ...

  6. (转)c语言随机数srandom( )

    转自:http://zhidao.baidu.com/question/334364810.html调用随机数函数 rand()() 的时候, 实际得到的这个随机数并不是绝对随机的,它是以一个初始值, ...

  7. POJ 1661 Help Jimmy (dijkstra,最短路)

    刚在百度搜索了一下这道题的题解, 因为看到有别人用动态规划做的,所以想参考一下. 结果顺带发现了有那么几个网站,上面的文章竟然和我这篇一模一样(除了一些明显的错别字外),我去,作者还是同一个人Admi ...

  8. iOS第三方解决键盘遮挡-IQKeyboardManager

    百度云:http://pan.baidu.com/s/1yg5ae githun:https://github.com/hackiftekhar/IQKeyboardManager AppDelega ...

  9. lintcode:形状工厂

    题目 工厂模式是一种常见的设计模式.实现一个形状工厂 ShapeFactory 来创建不同的形状类.这里我们假设只有三角形,正方形和矩形三种形状. 样例 ShapeFactory sf = new S ...

  10. lintcode:寻找旋转排序数组中的最小值 II

    寻找旋转排序数组中的最小值 II 假设一个旋转排序的数组其起始位置是未知的(比如0 1 2 4 5 6 7 可能变成是4 5 6 7 0 1 2). 你需要找到其中最小的元素. 数组中可能存在重复的元 ...