资源描述:
《DataGrid控件用法详解.doc》由会员上传分享,免费在线阅读,更多相关内容在教育资源-天天文库。
1、DataGrid控件用法详解作者:万建华下载源代码ﻫ写在前面刚写这个题目,就觉得肩上重了,不知道自己能否对DataGrid详解之.希望大家共同指正。DataGrid控件是VC方便地用来显示数据的一个极好的网格控件,我不否认网上还有期它不少优秀的网格控件,但我总喜欢使用微软自已的东西。除非它满足不了我的需要。不是我太依赖Microsoft,你想想,如果你最常用的开发工具是VC,VC是微软的主打开发工具,它与Windows系统的兼容性极好,连它的控件也不例外,你为何不先选用成熟的代码,如果它升级了,你的系统几乎不作改动就可以继续为你效劳,有什么不好,这不完全是那种无谓的依靠,而是利用。更重
2、要的是你可以更注重你的系统功能,而不是代码的细节。ﻫ之所以要写这样的文章,因为有几个网友在问我网格控件的用法,我想也许其他朋友也有用(如果真的是这样,我很高兴).ﻫﻫ一、我先交待主要内容1.在网格控件中显示查询的数据结果。2.对网格控件的显示进行控制(如列宽)。3.对网格内容格式进行控制(如将小于1的小数显示成百分数)二、准备工作ﻫ 先建立一个工程,我的主框架选用对话框,然后插入你DataGrid控件,见如图1ﻫﻫ图1ﻫ 找到MicrosoftDataGridOLEDB6.0控件,确定,出现图所示对话框,这个对话框中你要根据需要选择的类,这些类封装了这个控件的几乎所有功能有方法.这里
3、我只选择了三个类:CDataGrid,CColumns,CColumn,如图2(我们知道,ActiveX是基于COM的,这三个类是对这个控件的COM查询接口的封装,使你在使用时几乎不知道自己在使用COM控件.正因为如此,你要想直接查看这个控件的源代码,也就不可能了.)ﻫ图2ﻫﻫ三、功能实现及代码ﻫ1。在网格控件中显示查询的数据结果。ﻫ 数据库接库,并取得查询的数据结果.这里我使用了一个ADO封装类(当然你可以使用其它的方法方法数据库,而不会影响控件的使用)。CADODatabasem_DBCn;//数据库对象CADORecordsetm_Rs;//记录集对象CDataGRidm_ctr
4、lDG;//DataGrid控件对象。..CString strConnection;strConnection.Format(_T(”Provider=Microsoft.Jet.OLEDB。4。0;") _T("DataSource=note。mdb"));m_DBCn.Open((LPCTSTR)strConnection);//打开程序数据库m_Rs。SetDatabase(&m_DBCn);m_Rs。Open(_T("select*fromtest;"));//执行查询m_ctrlDG.SetRefDataSource((LPUNKNOW)m_Rs.GetRecordset
5、());//显示在DataGrid控件中 如图3:ﻫ图32.对网格控件的显示进行控制(如列宽).要实现对列的控制,就要先取得列对象。CColumnscols= m_ctrlDG.GetColumns();//先取得列集ﻫCColumncol= cols。GetItem(vt);//再取得列集中的列,由VARIANT vt变量指出列的索引号ﻫ然后,你就可以对当前列为所欲为,这里我对它设置列宽col.SetWidth(fWidth);//fWidth指定列宽如图4ﻫ图4ﻫ3.对网格内容格式进行控制(如将小于1的小数显示成百分数)ﻫ要设置列的显示格式,还是要先取得列,再对它设置格式,取得列
6、的方法同上。col.SetNumberFormat(_T("0。0%"));//百分数格式 如图5ﻫ图54。除此之外,我们还可以对它多行显示,如图6ﻫ图6ﻫﻫ5.另外,还可以利用消息机制,对控件的HeadClick消息处理,使控件能进行排序。(具体情况参见源代码)ﻫ四、结束语 ﻫﻫ 细心的朋友会发现,查看相关类的方法名(函数名),能故名思意,看出控件的功能,另外在插入控件时,一般有也帮助文件,不过是针VB的,而且VB的调用方法与VC差别较大,但只有对比VC和VB方法名的相似之处,你还是可以很快对这款控件上手,并运用到你的项目中去。 本文源程序在VC6。0英语版,WindowsXP调
7、试通过,并附源程序(工程名TestGrid).DataGrid控件的功能远不止这此,希望本文能抛砖引玉,欢迎有兴趣的朋友交流eMail:ChinaITBoy@163.com。个人收集整理,勿做商业用途