logo资料库

CGridCtrl学习心得和总结.doc

第1页 / 共38页
第2页 / 共38页
第3页 / 共38页
第4页 / 共38页
第5页 / 共38页
第6页 / 共38页
第7页 / 共38页
第8页 / 共38页
资料共38页,剩余部分请下载后查看
1引言
1.1目的
1.2参考资料
2Grid控件介绍
2.1功能介绍
2.2框架介绍
2.3主要类介绍
2.3.1CGridCtrl类
2.3.2CGridCellCheck类
2.3.2.1主要函数
2.3.2.2设置单元格类型
2.3.3CGridCellCombo类
2.3.3.1主要函数
2.3.3.2设置单元格类型
2.4控件类CGridCtrl常用函数说明
2.4.1行和列的设置
2.4.1.1SetRowCount
2.4.1.2SetColumnCount
2.4.1.3SetFixedRowCount
2.4.1.4SetFixedColumnCount
2.4.1.5GetRowHeight
2.4.1.6SetRowHeight
2.4.1.7GetColumnWidth
2.4.1.8SetColumnWidth
2.4.1.9GetFixedRowHeight
2.4.1.10GetFixedColumnWidth
2.4.1.11GetVirtualHeight
2.4.1.12GetVirtualWidth
2.4.2单元格信息设置
2.4.2.1SetCellType
2.4.2.2SetDefaultCellType
2.4.2.3SetItemText
2.4.2.4SetItemImage
2.4.2.5SetItemState
2.4.2.6SetItemBkColour
2.4.2.7SetItemFont
2.4.2.8SetItemFgColour
2.4.3控件操作
2.4.3.1InsertColumn
2.4.3.2InsertRow
2.4.3.3DeleteColumn
2.4.3.4DeleteRow
2.4.3.5DeleteAllItems
2.4.3.6DeleteNonFixedRows
2.4.3.7AutoSizeRow
2.4.3.8AutoSizeColumn
2.4.3.9AutoSizeRows
2.4.3.10AutoSizeColumns
2.4.3.11AutoSize
2.4.3.12RedrawRow
2.4.3.13RedrawColumn
2.4.3.14Refresh
2.4.4外观和特征设置
2.4.4.1SetImageList
2.4.4.2SetGridLines
2.4.4.3SetEditable
2.4.4.4SetSingleRowSelection
2.4.4.5SetSingleColSelection
2.4.4.6EnableSelection
2.4.4.7SetFixedColumnSelection
2.4.4.8SetFixedRowSelection
2.4.4.9EnableDragAndDrop
2.4.4.10SetHandleTabKey
2.4.4.11EnableTitleTips
2.4.4.12SetTrackFocusCell
2.4.4.13SetFrameFocusCell
2.4.5颜色设置
2.4.5.1SetGridBkColor
2.4.5.2SetGridLineColor
2.4.5.3SetTitleTipBackClr
2.4.5.4SetTitleTipTextClr
2.4.5.5SetTextColor
2.4.5.6SetTextBkColor
2.4.5.7SetFixedTextColor
2.4.5.8SetBkColor
2.4.5.9SetFixedBkColor
2.4.6控件消息介绍
2.4.6.1常用消息
2.4.6.2添加消息映射
3实例制做
3.1实例图片
3.2实例制做过程介绍
3.2.1新建项目
3.2.2初使化GridCtrl控件
3.2.3设置固定行和列
3.2.4向单元格插入图片
3.2.5设置CheckBox列
3.2.6设置ComboBox列
3.2.7设置行背景颜色和列背景颜色
3.2.8添加消息处理
4实例以外的思考
目 录 1 引言....................................................................................................................... 1 1.1 目的............................................................................................................... 1 1.2 参考资料....................................................................................................... 1 2 GRID 控件介绍....................................................................................................1 2.1 功能介绍....................................................................................................... 1 2.2 框架介绍....................................................................................................... 2 2.3 主要类介绍................................................................................................... 4 2.3.1 CGridCtrl 类.............................................................................................. 4 2.3.2 CGridCellCheck 类................................................................................... 5 2.3.3 CGridCellCombo 类..................................................................................7 2.4 控件类 CGRIDCTRL 常用函数说明............................................................10 行和列的设置..................................................................................... 10 单元格信息设置................................................................................. 12 控件操作............................................................................................. 15 外观和特征设置................................................................................. 20 颜色设置............................................................................................. 23 控件消息介绍..................................................................................... 26 2.4.1 2.4.2 2.4.3 2.4.4 2.4.5 2.4.6 3 实例制做............................................................................................................. 27 3.1 实例图片..................................................................................................... 27 3.2 实例制做过程介绍..................................................................................... 27 新建项目............................................................................................. 27 初使化 GridCtrl 控件..........................................................................28 设置固定行和列................................................................................. 30 向单元格插入图片............................................................................. 31 3.2.1 3.2.2 3.2.3 3.2.4
3.2.5 3.2.6 3.2.7 3.2.8 设置 CheckBox 列.............................................................................. 32 设置 ComboBox 列.............................................................................33 设置行背景颜色和列背景颜色......................................................... 34 添加消息处理..................................................................................... 35 4 实例以外的思考................................................................................................. 36 II
1 引言 1.1 目的 本文记录了作者在学习了解并使用 GridCtrl 的过程中的心得体会,希望能够 对今后学习使用 GridCtrl 控件的其他同事有所帮助,使其更快上手。 1.2 参考资料 1) CGridCtrl 学习指南 网址:http://lizhilin.happy.blog.163.com/blog/static/21769242200822911559438/ 2) CGridCtrl 使用详解 网址:http://blog.csdn.net/incwar/archive/2009/01/17/3807283.aspx 3) CGridCtrl 源代码一份。需要的同事,可以 OA 上发邮件给我。 4) 作者亲手制做的对于 CGridCtrl 的使用实例:GridCtrlTest。需要的同事,可 以 OA 上发邮件给我。 2 Grid控件介绍 2.1 功能介绍 GridControl 控件是一款非常优秀的网格控件,在 VC 平台上的用途非常广 泛也非常灵活。可以将其看做上是在 CListCtrl 基础上的定制和延伸。 GridControl 具备以下操作和功能:  使用鼠标可以进行单元格的选择,还可以辅助 ctrl 和 shift 的组合键进行选 择。也可以取消选择。  单元格可以有不同文本和背景颜色的个性化设置  单元格可以有字体的个性化设置  单元格可以标注"只读"或者其他的状态设置及检测  单元格的拖放动作 1
 可以对任何列或行固定  Ctrl-C, Ctrl-X 和 Ctrl-V 执行拷贝、剪切、粘贴操作,Ctrl-A 全选  当单元格成为焦点,并且在单元格的编辑区域按下字符键,就意味着在 那个单元格进行编辑了  可以在单元格中加入图片  对大型数据可以使用"虚拟"模式  充分的打印支持,支持文档/浏览环境(包括打印预览)或是基于会话的应用 (不支持打印预览)  可选的"列表模式",包括对行的全选或单选,还有单击列标题提示进行插入的 操作。  众多的虚函数可以很容易对控件进行功能扩充  单元格的标题提示太小不能显示数据  可以隐藏行和列  行和列可以按照大小进行重排,还可以取消对行、列或两者的排序。  双击区分点,行或者列可以按照大小自动排序 2.2 框架介绍 GridControl 包含一个拖曳对象(CGridDropTarget)和一个标题提示对象 (CTitleTip),前者处理拖曳操作,后者在单元格物理空间在最大限度内不足以 显示其内容时可以显示出其内容。而 CCellID 类是一个用来参考单元格范围的便 利的辅助类。此外,GridControl 还包含从 CGridCell 派生下来的单元格对象。 2
图 1 Grid 单元格可以是任何类型,这些类型都是从 CGridCell 派生下来的,基 类中定义了基本的数据存储和编辑操作。扩充的两个类 CgridCellCombo 和 CGridLCellCheck 示范了如何创建自己的单元格类。 图 2 单元格有两种主要状态即固定和非固定。固定的单元格通常在 Grid 的左上 方,并且不会随着 Grid 的卷动而移动,并且不能进行编辑,通常即这些单元格 包含列和行的标题部分。而非固定的单元格构成了 Grid 的内部,你可以对它进 行编辑和选择。 3
2.3 主要类介绍 2.3.1 CGridCtrl 类 CGridCtrl 是控件类,派生于 CWnd 类,代表整个网格对象,具备了针对网格 的所有基本操作,如设置网格行和列,设置网格外观,设置单元格信息等。 下面介绍控件初使化过程中的一个重要函数 CGridCtrl::Create: 函数申明:BOOL CGridCtrl::Create(const RECT& rect, CWnd* pParentWnd, UINT nID, DWORD dwStyle) 函数作用:创建控件 参数说明: rect:控件位置信息 pParetWnd:父窗口指针 nID:为控件指定的 ID,作为本次创建的控件对象的标识 dwStyle:控件风格,默认值为:WS_CHILD | WS_BORDER | WS_TABSTOP | WS_VISIBLE。 常用风格请参见下表: 控件风格 ID WS_CHILD 说明 说明窗口为子窗口 WS_OVERLAPPED 重叠窗口,通常有标题条和边界 WS_POPUP WS_BORDER WS_VISIBLE WS_DISABLED WS_VSCROLL WS_HSCROLL 弹出式窗口,不能与 WS_CHILD 一起使用 有边界 窗口可见 初使状态为禁止 具有垂直滚动条 具有水平滚动条 WS_TABSTOP 可用 TAB 键移动到下一个具有 WS_TABSTOP 风格的控件 结果返回:成功返回 TRUE;失败则返回 FALSE 注:关于 CGridCtrl 的其它常用函数请参见本文 2.4 4
2.3.2 CGridCellCheck 类 CGridCellCheck 继承于 CGridCell,是一个复选框风格的单元格类。 2.3.2.1 主要函数 1)GetCellExtent (重载) 函数申明:virtual CSize GetCellExtent(CDC* pDC); 函数作用:获得单元格大小 参数说明: pDC: 设备对象指针 结果返回:CSize 对象,描述单元格大小 2) OnClick (重载) 函数申明:virtual void OnClick( CPoint PointCellRelative); 函数作用:单击时,改变复选框状态 参数说明: PointCellRelative: 单元格的相对坐标 结果返回:void 3) GetTextRect(重载) 函数申明:virtual BOOL GetTextRect( LPRECT pRect); 函数作用:获取单元格文本的位置信息 参数说明: pRect: 输出文本的位置信息 结果返回:成功返回 TRUE;失败返回 FALSE 4) Draw(重载) 函数申明:virtual BOOL Draw(CDC* pDC, int nRow, int nCol, CRect rect, BOOL bEraseBkgnd); 函数作用:根据当前复选框的状态重绘复选框 参数说明: 5
pDC : 设备对象指针 nRow: 指定行 Index nCol: 指定列 Index rect: 重绘区域 bEraseBkgnd: 重绘前是否擦除背景 结果返回:成功返回 TRUE;失败返回 FALSE 5) SetCheck 函数申明:void CGridCellCheck::SetCheck(BOOL bChecked) 函数作用:设置复选框的状态 参数说明: bChecked:设置复选框的状态 结果返回:void 6) GetCheck 函数申明:BOOL CGridCellCheck::GetCheck() 函数作用:获取复选框的状态 参数说明: bChecked:设置复选框的状态 结果返回:复选框被选中,返回 TRUE;否则返回 FALSE 2.3.2.2 设置单元格类型 若要设置某一个单元格为复选框类型,则需调用: BOOL CGridCtrl::SetCellType(int nRow, int nCol, CRuntimeClass* pRuntimeClass) 若要让所有新创建的单元格都是复选框类型的的,则需调用: BOOL CGridCtrl::SetDefaultCellType( CRuntimeClass* pRuntimeClass) 注:详情参见:本文章节2.4.2 6
分享到:
收藏