在VC5.0中使用DBGrid控件,首先要运行ODBC数据源管理程序安装数据源(我们以数据源是STUDENT为例)。其方法为:在控制面板中双击ODBC图标,运行ODBC数据源管理程序。单击Add按钮,在AddDataSource对话框中选择MicrosoftAccessDriver,出现ODBCMicrosoftAccess97Setup对话框,输入数据源名Student以及选择好数据库student.mdb,然后单击OK,再确定完成设置。
与在VB中使用DBGrid控件相类似,在VC中使用DBGrid控件也需要一个类似于Data的控件,不过它叫RemoteData控件。
下面我们举两个示例程序来演示DBGrid控件的使用方法,这两个示例的项目名都为DBGrid。
一示例程序
按如下步骤创建:
运行AppWizard生成项目DBGrid。除选择SingleDocument和CDBGridView的基类改为FormView以外,其他均按默认设置处理。
在项目DBGrid中添加DBGrid控件和MicrosoftRemoteData控件。从DeveloperStudio的Project菜单中选择AddToProject,再从子菜单中选择ComponetsAndControls。选择RegisteredActiveXControls,然后选择DBGridControl和MicrosoftRemoteDataControl。DeveloperStudio将产生控件类CMSDgridCtrl和CRdc,并把相应的文件添加到项目中。
在IDD_DBGRID_FORM模板中加入控件。利用控件工具箱加入RemoteData和DBGrid控件。
对控件RemoteData编辑。选中该控件,单击鼠标右键,选择Propertis,出现MicrosoftRemoteDataControl2.0Properties对话框。选择General标签,修改资源ID为IDC_RDCSTUDENT,Caption为Student。单击Control标签,Datasource选择Student(即前面ODBC数据源管理程序安装的数据源),SQL中输入语句Select*fromstudent。
对控件DBGrid编辑。选择该控件,单击鼠标右键,选择Propertis,出现DBGridControlProperties对话框。选择General标签,修改资源ID为IDC_DBGSTUDENT,Caption为Student或不设置。单击All标签,DataMode选择0-Bound,DataSource选择IDC_RDCSTUDENT。
编译并测试程序。DBGrid在程序中正确地工作了。
示例程序1可能过于简单了,不过它的目的只是演示DBGrid控件在VC5.0中使用的方法。下面我们对它略作改进。
修改设计时DBGrid控件的列数。DBGrid控件在设计时的列数默认为两列。选择DBGrid控件,单击鼠标右键,选择DBGridControlObject,再选择Edit。看上去没有什么变化,其实不然,再选择DBGrid控件,单击鼠标右键,可以发现此时的菜单不同了,选择Insert,此时DBGrid控件的列由原来默认的两列变成了三列。重复操作,直到DBGrid控件的列数满足你的要求为止。
修改DBGrid控件的列标题。DBGrid控件的列标题默认为数据集的字段名,可以改为我们想要的列标题。步骤如下:
修改DBGrid控件的列标题。选择该控件,单击鼠标右键,选择Propertis,出现DBGridControlProperties对话框。选择Columns标签,在Column选择Column0,Caption中输入“编号”,DataField中选择StudentID,在其他项中选择或输入你认为需要的信息。重复本步骤,直至完成修改所有的列标题为止。
关闭DBGridControlProperties对话框,可以看到修改的列标题已经在DBGrid控件上出现了。
在程序运行时改变DBGrid控件的尺寸。在视图尺寸大小改变时,DBGrid控件的尺寸却没有改变,需要添加消息处理函数OnSize()。
使用ClassWizard为类CDBGridView加入成员变量。在ClassWizard中单击MemberVariables标签,选择IDC_DBGSTUDENT,添加变量m_dbgstudent,类型为Control。
使用ClassWizard映射视图类的WM_SIZE函数。编辑函数如下:
voidCDBGridView::OnSize(UINTnType,intcx,intcy)
{
CFormView::OnSize(nType,cx,cy);
Crectrect;
GetClientRect(rect);
::SetWindo