2024年4月19日发(作者:)

[转载]CGridCtrl帮助中文版(1)

2009年11月29日 星期日 12:25

GridCtrl学习指南

当我努力为显示和编辑现有表中的数据而使用 CListCtrl 到了极限之后,

我意识到我所需要的只不过是一个专用的Grid控件而已。于是我开始着手写自

己的Grid控件,但为了节省时间我决定修改Joe Willcoxson's的免费控件

WorldCom,你可以在以下站点 /chinajoe/

找到这个东东。为了让它能做我要做的事情,我分解了他的代码,并且重新修改。

由于代码经过太多的修改,我甚至不能确信最终是否还存在最初的代码。但无论

如何,Joe的代码是一个大框架,而我只是在上面进行加工而已。

工程一开始的时候是计划尽可能的简单但是当我不断发现我不得不考虑新

特色的时候,它迅速的膨胀成为一个梦魇。虽然测试并不是没有遗漏--但是我还

是坚信情形不会变得太坏J。Joe很善意的允许我开放这个资源而不附加任何的

语句(毕竟那是基于他的代码),但是由于工程象马拉松似的,所以我在这段代

码中使用了两个非常不成熟的条件:

这段代码可以以任何方式用于已编译的形式中(包括商业用途)。只要代码

不适用,即使没有作者同意,作者姓名和所有版权信息都原封不动,你可以对代

码进行任何形式的使用。但是,如果没有作者的同意,这篇文章和附带的源代码

都不能放在任何网站或论坛上。

你就把它当作是没有任何担保的软件,随意使用吧!

我已经尽量除去任何不良的" 特征",对由它引起的任何损害,时间的浪费

或者数据丢失等,我不负任何责任。

希望不要问太多关于继续开发下去的到底有多大工作量的问题。如果你真的

要用于商业场合,请给我发email让我知道。如果没有多少人使用的话,开放和

维护/升级代码就没有任何意义。

控件的特点:

●使用鼠标可以进行单元格的选择,还可以辅助ctrl和shift的组合键进

行选

择。也可以取消选择。

● 行和列可以按照大小进行重排,还可以取消对行、列或两者的排序。

● 双击区分点,行或者列可以按照大小自动排序

● 可以对任何列或行固定

● 单元格可以有不同文本和背景颜色的个性化设置

● 单元格可以有字体的个性化设置

● 单元格可以标注"只读"或者其他的状态设置及检测

● OLE的拖放动作

● Ctrl-C, Ctrl-X和Ctrl-V执行拷贝、剪切、粘贴操作,Ctrl-A全选

● 当单元格成为焦点,并且在单元格的编辑区域按下字符键,就意味着在

那个单元格进行编辑了

● 支持微软的智能鼠标

● 可以在单元格中加入图片

● 对大型数据可以使用"虚拟"模式

● 充分的打印支持,支持文档/浏览环境(包括打印预览)或是基于会话的

应用(不支持打印预览)

● 可选的"列表模式",包括对行的全选或单选,还有单击列标题提示进行

插入的操作。

● 众多的虚函数可以很容易对控件进行功能扩充

● 支持UNICODE

● 支持WinCE

● 单元格的标题提示太小不能显示数据

● 可以隐藏行和列

● 在VC4.2、5.0、6.0和CE工具箱2.0、3.0下编译通过

示例中示

范了grid控件中大部分特征

文档

如果想在你的工程中使用这个Grid控件的话,你还得在你的工程中添加一

些文件:

, gridctrl.h Grid控件资源文件和头文件