当前位置: 首页 > 图文教程 > 开发语言 > VC++ > 按数据库记录构建树控件

VC++
如何有效地使用对话框
一个定制CFileDialog对话框的实例
XP风格复活节彩蛋的实现
程序界面多模式显示的实现
改变视图单调的背景
使窗体拥有透明效果的API
《电子尺》V1.02程序开发实例
美化你的应用程序的外观界面
个人考勤软件开发实例
使用VC6.0实现窗口的任意分割
如何让一个打开的文档成为活动文档
创建非矩形窗口的简单方法
轻松实现类VC界面
视图的缩放的完整论述
如何获得另一个应用程序窗口中的文本
如何发送命令到文档对象
动画窗口的实现-VC++实例一则
如何在其他程序的窗口上创建按钮并使之能响应
如何在基于对话框的程序中动态设置鼠标指针
扩展COleDropTarget类来支持任意窗口拖放 - 作者:王加宝

VC++ 中的 按数据库记录构建树控件


出处:互联网   整理: 软晨网(RuanChen.com)   发布: 2009-10-30   浏览: 81 ::
收藏到网摘: n/a

按数据库记录构建树控件
作者:XuFeng Yuan

下载本文示例代码

代码运行效果图如下:


简介:
将树中的每一个项目作为数据库中的一条记录(ACCESS2000),将程序启动时,对数据库进行读操作;创建树的各个项目时,是对数据库进行读操作,每次的读取,都是在可是查寻符合条件的记录,并将其一一添加到树中!

实现方法:
准备:
使用ACCESS2000,创建一个数据库,名字为City.mdb(我们将制作一个关于省与市的树,特别适合通讯录);
在数据库中创建一表,表名为TreeItem,字段内容与类型如下图:



ID: 索引号码(可有,可无)
Name: 项目名称(必须)
ParentItem: 父项名称(必须)
SecNum: 电话区号(可有,可无)

输入一些原始数据.数据库已经准备好,那我们就进行实地的编程阶段.
程序实现:
创建一个基于对话框的工程---TreeData

一.ADO的引入和初始化

由于在程序中,我使用了ADO来连接和操作数据库,所以要进行以下操作:
1.在Stdafx.h中添加引作ADO的代码:
//--------------------------------------------#import "c:\program files\common files\system\ado\msado15.dll" \no_namespace \rename("EOF","adoEOF")//--------------------------------------------
2.在TreeData.h中声明两个私有变量:
public:	_ConnectionPtr m_pTreeConn;//连接创建private:	CString TreeConnString;//连接字符串
3.在CTreeDataApp的构造函数CTreeDataApp中添加如下代码:
//-------------------------------------------m_TreeConnString=_T("Provider=Microsoft.Jet.OLEDB.4.0;")_T("Data Source=DataBase\\City.mdb;");//-------------------------------------------
4.在CTreeDataApp的初始化函数中添加如下代码:
//-------COM初始化--------------------------------AfxOleInit();/******************连接通讯录数据库********************/HRESULT hRes;try{	hRes=m_pTreeConn.CreateInstance(_T("ADODB.Connection"));	m_pTreeConn->ConnectionTimeout = 8;	//连接ACCESS2000	hRes=m_pTreeConn->Open(_bstr_t((LPCTSTR) m_strTelDataSource),	_T(""),_T(""),adModeUnknown);}catch(_com_error e)///捕捉异常{	CString errormessage;	errormessage.Format(_T("连接TelBook.mdb数据库失败!\r\n错误信息:%s"),e.ErrorMessage());	AfxMessageBox(errormessage);///显示错误信息	return FALSE;}
二.Recordset的创建:

1.在CTreeDataDlg.h中声明变量:
//------------------------------------------private:	HRESULT hRes;	_RecordsetPtr m_TreeRecordset; //用于创建一个查询记录集//------------------------------------------public:	CImageList m_TreeBootImage; //Tree的图标
2. (1).在对话框窗口中添加一个TreeCtrl控件,一个ComboExe控件; TreeCtrl的风格设置如下图;


(2).导入一个BMP文件,做为Tree的项目图标(TreeBoot.bmp),将其ID设置为IDB_TreeBootImage;

(3).在向导中,为三个控件添加连接对象.