需要找一个表格的控件,兴高采烈得找了半天,结果全都不能用!因为我要在wince上开发,所以就有好多限制!不过都错得莫名其妙的,按原来的习惯就用listcontrol的report了,但是实在难看得很,后来终于找到了这个超强的控件。
搞定了工作,也记住了这个网站http://www.codeproject.com/。
开源就是好,全世界互不相识的人可以一起协同!:)
我的报告如下:
MFC Grid control 2.26使用说明
1. 功能简介
MFC Grid control 2.26 是一个经过多年发展,广为使用的列表控件,功能十分强大,可以对任意某格改变颜色,设定风格,进行编辑,嵌入下拉框等等,引用处在
http://www.codeproject.com/miscctrl/gridctrl.asp(已下载为The Code Project - Miscellaneous Controls.htm),效果如下:
2.加入工程
1) 打开资源管理器,在需要的对话框中加入一个custom control,将class设为 MFCGridCtrl
2) 在工程中加入需要的.cpp a和 .h 文件
这些文件都在gridctrl_src225.zip里,解压后放在程序目录下
3) 在需要加入控件的对话框类的声明文件中加#include "GridCtrl.h"
在对话框类里定义'MFCGridCtrl m_gridCtrl'
3) 在对话的 cpp文件中的DoDataExchange()中加入
'DDX_GridControl(pDX, IDC_CUSTOM1, m_gridCtrl);'
4) 编译运行即可
3.帮助文件
控件使用心得
感觉和LISTCTRL的REPORT比较类似,
具体信息参见The Code Project - Miscellaneous Controls.htm
4.常用示例
下面是几个比较常用的接口的例子:
/////////// // MFCGRIDDlg.h : 头文件
CGridCtrl m_gridCtrl;
// MFCGRIDDlg.cpp : 实现文件
//插入行
m_gridCtrl.InsertColumn(L"属性");
//插入列
m_gridCtrl.InsertRow(L"BLER1");
//调整固定行的个数
m_gridCtrl.SetFixedRowCount(1);
//调整固定列的个数
m_gridCtrl.SetFixedColumnCount(1);
//使不可以更改格中的值
m_gridCtrl.SetEditable(false);
//设置格中值
m_gridCtrl.SetItemText(1, 1, L"I am very long " );
//让行高度自动适合内容
m_gridCtrl.AutoSizeRows();
//让列宽度自动适合控件 (同时适应数据和值)
m_gridCtrl.AutoSizeColumns(GVS_BOTH);
//让最后一列宽度自适应控件的剩余部分
m_gridCtrl.ExpandLastColumn();