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

VC++
在类VC的界面实现中加入目录树
软件换肤技术在 BCB 中的实现
利用非模窗口生成MDI介面
报表输出轻松搞定
Windows 中不规则窗体的编程实现
解说Win32的窗口子类化
使用测试优先方法开发用户界面
一个简单的登录对话框的实现
一个简单的日记本程序
从资源中加载皮肤
一个在RichEdit中添加表情图象的类
ActiveSkin 4.3 软件换肤在VC中的实现
一种另类“关于(About)”对话框的动态显示方法
对话框打印预览及打印
关于如何换肤、子类化的解决方案
制作 MSN、QQ 的消息提示窗口
如何对 BCGControlBarPro 进行换肤
定制个性化的对话框窗口类
改变窗口中的光标形状
更新MFC中的视图,跟踪.NET Framework中的事件

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


出处:互联网   整理: 软晨网(RuanChen.com)   发布: 2009-10-30   浏览: 89 ::
收藏到网摘: 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).在向导中,为三个控件添加连接对象.