研究了好几天,今天终于弄好了,下面是代码

[dlg.cpp]

在初始函数OnInitDialog()中加

HICON hIcon[3];

HTREEITEM hRoot;

//加载三个图标

hIcon[0] = theApp.LoadIconW(IDI_ICON1);

hIcon[1] = theApp.LoadIconW(IDI_ICON3);

hIcon[2] = theApp.LoadIconW(IDI_ICON2);

m_imageList.Create(16, 16, ILC_COLOR16, 3, 3);
for (int i=0;i<3;i++)
{
m_imageList.Add(hIcon[i]);
}
//绑定树控件与ImaageList
m_webTree.SetImageList(&m_imageList, TVSIL_NORMAL);
//初始化Ado环境
AfxOleInit();
hRoot = NULL;
OpenConn(); //打开数据函数
LoadTreeCtrlData(hRoot,_T("0")); //递归加数据到树控件中
CloseConn(); //关闭数据库

//下面就是递归函数

void CMFCApp_CTreeCtrl_testDlg::LoadTreeCtrlData(HTREEITEM hItem,CString mid)

{

HTREEITEM temItem;

_RecordsetPtr m_pRecordset;

m_pRecordset.CreateInstance(__uuidof(Recordset));

try

{

CString sql;

sql.Format(_T("select * from mTable where pID='%s'"), mid);

	m_pRecordset->Open((_variant_t)sql, m_pConnection.GetInterfacePtr(), adOpenDynamic, adLockOptimistic, adCmdText);
//AfxMessageBox(_T("123"));
}
catch (_com_error e)
{
CString str;
str.Format(_T("连接数据表失败:%s"), e.ErrorMessage());
AfxMessageBox(str);
return;
} _variant_t var;
CString strTmp;
while (!m_pRecordset->adoEOF)
{
var = m_pRecordset->GetCollect(_T("mName"));
strTmp = (LPCTSTR)_bstr_t(var);
temItem=m_webTree.InsertItem(strTmp, 1, 1, hItem, TVI_LAST); //把自己的mID存入到节点中,

//节点存放的是指针地址的数据,查了好几天百度才弄清.

	var = m_pRecordset->GetCollect(_T("mID"));
strTmp = (LPCTSTR)_bstr_t(var);
CString* pStr = new CString;
*pStr = strTmp;
m_webTree.SetItemData(temItem,(DWORD)pStr); //递归加载子节点
LoadTreeCtrlData(temItem,strTmp);
m_pRecordset->MoveNext();
}

}

//取出数据

CString strText;

HTREEITEM hItem = m_webTree.GetSelectedItem();

//strText = m_webTree.GetItemText(hItem);

CString str = (CString)m_webTree.GetItemData(hItem);

if(str!=NULL)

strText.Format(_T("%s"), str->GetString());

SetDlgItemText(IDC_ITEM_SET_EDIT,strText);

尽管磕磕绊绊的好几天,今天总算弄出效果了.

MFC树形控件加载Access数据库数据的更多相关文章

  1. MFC Picture控件加载图片

    CStatic *pPic = (CStatic*)GetDlgItem(IDC_PICTURE); CBitmap bitmap; bitmap.LoadBitmapW(IDB_BITMAP2); ...

  2. paip.gui控件tabs控件加载内容的原理以及easyui最佳实现

    paip.gui控件tabs控件加载内容的原理以及easyui最佳实现 //////////////tabs控件的加载 同form窗体一样,俩个方式 两个方式:一个是url,简单的文本可以使用这个,不 ...

  3. C#拖曳控件加载,bll报错问题

    C#拖曳控件加载,bll报错问题,加载时实例如化bll时加上一个判断 if (!(GetService(typeof(IDesignerHost)) != null            || Sys ...

  4. C#窗体加载和控件加载不同步导致控件闪烁

    窗体加载和控件加载不同步导致的控件闪烁现象:// 代码块加在父窗体中的任意位置,解决窗体加载和控件加载不同步导致的控件闪烁问题        protected override CreatePara ...

  5. 关于4A网络安全管控平台控件加载失败的解决方法

    最近电脑重装系统后,到公司登录4A管控平台提示"控件加载失败","无效的参数为:Null","点击资源无任何反映"等等问题 别人的电脑用的好 ...

  6. MFC树形控件的使用(右键点击)

    在MFC中,会用到树形控件,这里做下记录. 右键点击 1.添加右键点击事件(NM_RCLICK) 2.获得鼠标在Client的坐标 CPoint point; GetCursorPos(&po ...

  7. MFC 树形控件

    Tree Control属性:Has Buttons.Has Lines.Lines At Root这三个设为True 常用的事件:SelectChanged() ico图片放到项目的res文件夹中( ...

  8. vue使用树形控件z-tree,动态添加数据,默认展开第一行

    环境:vue 2.9.3; webpack; 插件:z-tree,jquery(cnpm install xxxx) 问题;由于数据量比较多,需要动态加载数据,默认第一次请求的数据是最高一级,然后子集 ...

  9. 利用MFC Picture Control控件 加载bmp,png

    1.在资源视图,选择PictureControl,并且在属性中把Type设置为Bitmap. 2.加载PNG CStatic* pWnd = (CStatic*)GetDlgItem(IDC_PIC) ...

  10. MFC-----在MFC中使用Picture控件加载任意图片

    对于刚刚接触OpenCV的童鞋来说,如何在MFC中加载并显示一张图片.应该是初期必定会碰到的问题之一.因此本文在分享这方面经验的同时,也相当于是写给自己的一份备忘录. 本文使用的是OpenCV2.1+ ...

随机推荐

  1. [AGC030C] Coloring Torus

    非常巧妙的一道构造题,发现对于所构造的 \(n\) 有上限,那么对于 \(K<=500\) 的情况,很好构造,每行全是一个数就行了,对于 \(K>500\) 的情况,显然每行都是 \(1, ...

  2. Mysql 使用(一)

    一.数据库的种类 关系型数据库 非关系型数据库 二.常见关系型数据库 oracle:在以前的大型项目中使用,银行,电信等项目 mysql:web时代使用最广泛的关系型数据库 ms sql server ...

  3. Stable Diffusion(二)WebUI使用指南

    1. 前言 基于 https://stable-diffusion-art.com/ 内的教程进行翻译与整理,帮助快速上手 stable-diffusion 的使用. 2. 环境 AWS DeepLe ...

  4. 在Linux驱动中使用regmap

    背景 在学习SPI的时候,看到了某个rtc驱动中用到了regmap,在学习了对应的原理以后,也记录一下如何使用. 介绍 在Linu 3.1开始,Linux引入了regmap来统一管理内核的I2C, S ...

  5. 『vulnhub系列』HMS-1

    『vulnhub系列』HMS?-1 下载地址: https://www.vulnhub.com/entry/hms-1,728/ 信息搜集: 使用nmap进行存活主机探测,发现开启了21端口(ftp) ...

  6. 【仿真】Carla简易安装 Window Ubuntu均适用 附ROS的简单连接 [0]

    参考与前言 CARLA Documentation 官方文档 后续链接:[仿真]Carla介绍与使用 [1] 本篇创建于 2020/12/18,安装方式为压缩包安装,无需UE4等软件,但是前提是需要一 ...

  7. Linux常用指令及shell脚本记录

    记录一些常用指令在博客上,以防哪天因太久不敲而忘却,还可以直接翻看博客记录,不用再一条条百度搜...... 一.Linux常用指令 一.设置文件权限为aapp用户及用户组-- chown -R app ...

  8. PN转232网关模块接扫码枪与CPU通讯

    在现代物流.汽车生产线等领域,广泛使用条码扫码枪快速扫描产品条码,提高工作效率.为了保证条码扫码枪与CPU之间的准确通信,PN转232网关模块成为关键部件.本文将深入研究PN转232网关模块(BT-P ...

  9. oeasy教您玩转vim - 005 - # 程序本质

    ​ 程序本质 回忆上次内容 py 的程序是按照顺序 一行行挨排解释执行的 我们可以 python3 -m pdb hello.py 来对程序调试 调试的目的是去除 bug 别害怕 bug bug 会有 ...

  10. Linux 基于flock命令实现多进程并发读写文件控制

    基于flock命令实现多进程并发读写文件控制 需求描述 实际项目中,需要在Linux下通过shell脚本并发读写同一个文件,但是希望同一时刻,只有一个进程可以在读.写目标文件. 解决方案 使用floc ...