CGridCtrl控件是开源的,可在CodePlex和CodeProject上搜索找到,是VC++中用于显示表格数据的控件。基本功能包括:表格显示,单元格的编辑,单元格颜色设置,鼠标事件的响应,单元格内嵌入图片、CheckBox、ComboBox、Bitmap、Button等。
CodeProject中的链接http://www.codeproject.com/Articles/8/MFC-Grid-control
利用拖动控件在对话框中使用CGridCtrl
使用CGridCtrl需要将源码中的将GridCtrl_src文件夹和NewCellTypes内的所有文件添加到自己的工程当中。
创建基于对话框的MFC工程,选择Custom Control拖动到对话框上,如下图所示
在控件的属性对话框中设置Class属性为MFCGridCtrl(必须),控件ID设置为IDC_GRID(可自由设定),如下图所示
接下来利用ClassWizard为控件关联变量,变量类型为CGridCtrl(图中的CGridCtrlEx为CGridCtrl的派生类,是自己用于添加的项目需要的额外功能的类),控件类型为MFCGridCtrl,
然后就可以像使用普通控件那样使用CGridCtrl了。
利用拖动控件在对话框中使用CGridCtrl
在对话框上添加一个PictureBox类型的空间,控件ID设置为IDC_GRID,该控件用于确定CGridCtrl控件在对话框上的显示位置,如图所示。
在对话框类的头文件中增加CGridCtrl的指针类型变量
1 CGridCtrl* m_pGrid;
在OnInitDialog()函数中增加如下代码
1 int captionHeight = ::GetSystemMetrics(SM_CYCAPTION); 2 int cxframe = GetSystemMetrics(SM_CXFRAME); 3 int cyframe = GetSystemMetrics(SM_CYFRAME);4 5 CRect rectGridWnd;6 rectGridWnd.OffsetRect(-cxframe,-cyframe-captionHeight);7 m_pGrid = new CGridCtrl(5,5);8 m_pGrid->Create(rectGridWnd,this,IDC_GRID);
然后就可以利用m_pGrid进行各种操作了。