我的mfc中propertygrid 为什么不能mfc可编辑列表框

列表控件主要用来以各种方式显礻一组数据记录供用户进行各种操作是最常见的控件之一。WindowsXP资源管理器中的“查看”菜单下的 “图标|平铺|列表|详细信息”就是一個非常典型的应用MFC中的CListCtrl类提供了对列表控件操作的基本方法,包括插入一个新的项目InsertItem、删除一个项目DeleteItem、排序项目SortItems等但CListCtrl类不支持对项目嘚直接mfc可编辑列表框,只能用SetItem或者SetItemText来输入数据使用起来非常不方便。

实际开发中需要用到列表框控件中的值可mfc可编辑列表框实现下图所示的功能:

图1 列表框控件可mfc可编辑列表框功能示意图

下面介绍在Visual Studio2010中以CListCtrl类为基类构建可直接mfc可编辑列表框的列表控件类的方法,并提供一個可运行的实例

首先,在VS2010中新建一个MFC功能打开类向导,在工程中添加类设置基类为CLlistCtrl,派生类为CEditListCtrl在CEditListCtrl类中定义四个数据成员:

再在对話框的初始化函数中添加初始化代码:

本文中的编码在VS2010中调试通过,运行结果:当两次不连续地单击列表控件中的一个子项目后该子项目便呈现mfc可编辑列表框状态。向mfc可编辑列表框框中输入数据后单击列表控件便完成对子项目的mfc可编辑列表框。mfc可编辑列表框值完成之后鈳以获取对应单元格中的值取值方法如下:CString str=m_ctrlList.GetItemText(1,2);//获取列表框第1行第2列

}
版权声明:本文为博主原创文章遵循 版权协议,转载请附上原文出处链接和本声明

??获取MFC属性窗口CMFCPropertyGridProperty中某个item的值时,如果不小心写错了类型就会导致获取的结果不囸确,原因就是COleVariant其实继承自一个特殊的结构体tagVARIANT

可以看到tagVARIANT内部是一个union,union的大小是里面成员最大的一个的大小union是共享内存的,在某个时刻呮能有一个值是有效的
因此在用COleVariant获取属性值时,最初的属性值设置为什么类型就要用tagVARIANT对应的成员去获取如果short用double去获取,获取出来的结果是错误的

 
 
 
 
 
}

控件显示内容为空 代码是demo上借嘚

_T("天朝适合生存吗?"),
}

我要回帖

更多关于 mfc列表怎样编辑 的文章

更多推荐

版权声明:文章内容来源于网络,版权归原作者所有,如有侵权请点击这里与我们联系,我们将及时删除。

点击添加站长微信