CGridCtrl在MFC中的使用

Posted canger

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了CGridCtrl在MFC中的使用相关的知识,希望对你有一定的参考价值。

  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进行各种操作了。

 

以上是关于CGridCtrl在MFC中的使用的主要内容,如果未能解决你的问题,请参考以下文章

CGridCtrl某一列增加ToolTip飘窗效果

CGridCtrl控件类的用法

如何在activex控件中传输id_edit_copy msg

请教CGridCtrl控件的自动滚动条设置

CGridCtrl 水平滚动

需要输入的数据太多,用MFC的editBox不够用,想做一个表格式的交互输入对话框