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. Sencha Touch xtype对应的class

    Sencha Touch 2的有效xtype xtype Class ----------------- --------------------- actionsheet Ext.ActionShe ...

  2. TestDriven.Net

    转: http://www.cnblogs.com/AlexLiu/archive/2008/12/01/1345002.html

  3. 批量安装操作系统之cobbler

    Cobbler 部署文档 服务端配置 操作系统:Centos6.4 关闭防火墙及 selinux 安装cobbler软件 添加yum源 rpm -Uvh https://dl.fedoraprojec ...

  4. Asp.Net中用JS中操作cookie的方法

    <%@ Page Language="C#" AutoEventWireup="true" CodeFile="cookies.aspx.cs& ...

  5. Unity3D 将 Unity 嵌入WPF中的一些研究笔记

     一. 在 WPF 中使用 WebBrowser,直接打开 WebPlayer.html 以这种方式有一个问题是. 无法在 WebBrowser 的上面 放置其它的控件, 在运行时,都不会显示 . 以 ...

  6. Javascript Date类常用方法详解

    getDate :得到的是今天是 几号(1-28.29.30.31). getDay  :  得到的是今天是 星期几(1-7). getFullYear : 得到的是今天是 几几年(4位). getH ...

  7. JQuery原理及深入解析--转载

    总体架构 jQuery是个出色的javascript库,最近结合它写javascript,看了下源码. 先从整体.全局的看,jQuery的源码几乎都在下面的代码中: (function() { //… ...

  8. poj 3684

    Physics Experiment Time Limit: 1000MS   Memory Limit: 65536K Total Submissions: 784   Accepted: 266 ...

  9. DevExpress licenses.licx 问题

    在DevExpress ( 当然并不范指DevExpress,很多收费软件都是这样的)中,licenses.licx 是用户许可证书文件,当我们使用某些ActiveX(是Microsoft对于一系列策 ...

  10. Codeforces Round #258 (Div. 2)(A,B,C,D)

    题目链接 A. Game With Sticks time limit per test:1 secondmemory limit per test:256 megabytesinput:standa ...