`
mmdev
  • 浏览: 12893728 次
  • 性别: Icon_minigender_1
  • 来自: 大连
文章分类
社区版块
存档分类
最新评论

MFC 树控件加图标

 
阅读更多

方法很多,常用到的有这两个:截图:

方法一:(加 ico图标,一个一个的加,4*16*16)

准备4张16*16的ico图片

(在树已经可以正常显示的情况下)

在 Dlg.h中声明:CImageList imagelist;

在Dlg.cpp中:

Dlg::BuildTree() 下:

建立 imagelist :

imagelist.Create(16, 16, ILC_COLOR8|ILC_MASK, 0, 4);
imagelist.Add(AfxGetApp()->LoadIcon(IDI_TREEBOOT)); // ico图标
imagelist.Add(AfxGetApp()->LoadIcon(IDI_TREEFATHER));
imagelist.Add(AfxGetApp()->LoadIcon(IDI_TREECHILD)); //图标个数随意加,多加几个也行
m_deviceTree.SetImageList(&imagelist, TVSIL_NORMAL); // 建立 imagelist 与 tree的映射关系
----------------------------------------------------------------------------------------------------------------------------------------------------------------

第三个参数:确定创建的图象列表类型。
ILC_COLORDDB 使用设备独立位图
ILC_MASK 使用掩码。图象列表包含两个位图,其中一个是用做掩码的位图。如果不包括此值,图象列表只包含一个位图
第四个参数:图象列表最初包含的图象数。
第五个参数:当系统需要改变列表为新图象准备空间时,图象列表可生成的图象数。此参数替代改变的图象列表所能包含的新图象数。

---------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------

然后往根节点插图:m_hItemroot = m_deviceTree.InsertItem(_T("根节点"), 0, 1, TVI_ROOT);//0 表示不选时是第一张图,1表示选择时是第二张图。

往父节点(根节点的儿子):

HTREEITEM hItemGroup = m_deviceTree.InsertItem(A2T(pGroupInfo->m_groupBaseInfo.m_szName), 1, 1, m_hItemroot); //跟上面的一样 ,最后一个参数表示此节点是根节点的儿子节点。

往叶子节点(父节点的儿子):

HTREEITEM hItemDevice = m_deviceTree.InsertItem(A2T(devInfo.m_baseInfo.m_szName), 2, 2, hItemGroup);//跟上面一样

展开树:

m_deviceTree.Expand(hItemGroup, TVE_EXPAND);

m_deviceTree.Expand(m_hItemroot, TVE_EXPAND);


方法二:(加 bmp图片,64*16,一张图片上有4张16*16的小图)方法跟第一个差不多 ,

在 Dlg.h中声明:CImageList imagelist;

在Dlg.cpp中:

Dlg::BuildTree() 下:

建立 imagelist :

imagelist.Create(IDB_BITMAP_STUDENT, 16, 0, RGB(0, 255, 0)); // 64*16的bmp图片,16表示一张图显示的宽度
m_deviceTree.SetImageList(&imagelist, TVSIL_NORMAL); //跟tree建立映射关系

...

m_deviceTree.SetItemImage(m_hItemroot, 0, 1); //根节点 插图 0,1 表示:0 表示不选时是第一张图,1表示选择时是第二张图。

... m_deviceTree.SetItemImage(hItemGroup, 0, 1); //父节点插图

...m_deviceTree.SetItemImage(hItemDevice, 3, 3); //叶子节点


树背景颜色及文字颜色设置:

m_deviceTree.SetTextColor(RGB(0, 0, 0)); //文本

m_deviceTree.SetBkColor(RGB(240, 240, 240)); //背景

树的遍历:

void CDeviceTreeDlg::ChangeDeviceImage()
{
HTREEITEM m_hItemRoot = m_devGroupTree.GetRootItem();
if (NULL == m_hItemRoot)
{
return;
}

HTREEITEM m_hItemGroup = m_devGroupTree.GetChildItem(m_hItemRoot);

while(NULL != m_hItemGroup)
{
HTREEITEM m_hItemDevice = m_devGroupTree.GetChildItem(m_hItemGroup);

while(NULL != m_hItemDevice)
{
CDevice* pDevi = (CDevice*)m_devGroupTree.GetItemData(m_hItemDevice);
if (pDevi->m_bOnLine)
{
m_devGroupTree.SetItemImage(m_hItemDevice, 3, 3);
}

m_hItemDevice = m_devGroupTree.GetNextSiblingItem(m_hItemDevice);
}

m_hItemGroup = m_devGroupTree.GetNextSiblingItem(m_hItemGroup);
}
}




分享到:
评论

相关推荐

    MFC树形控件CTreeCtrl显示文件路径及文件

    该资源主要是结合http://blog.csdn.net/eastmount/article/details/19120567文章,使用MFC树形控件CTreeCtrl左边显示我的电脑不同盘符下文件夹,双击路径能显示该文件夹下文件图标.是关于树形控件比较好的资源,含注释.

    MFC 树形控件 复选框

    照着网上搬下来的,实现MFC复选框的勾选,父节点选择后下级的子节点也会全部选中,。原博客网址http://blog.csdn.net/plzhou/article/details/44922793

    mfc带图标的树状控件(有详细说明)

    mfc带图标的树状控件(有详细说明),可参考鸡啄米mfc入门教程的三十节

    MFC tabctrl控件重载, 实现标签加载BMP图片, 美化标签

    MFC tabctrl控件重载, 实现标签加载BMP图片, 美化标签. 找了N久终于找到了, 不容易啊!

    MFC常用图标5000个

    美化VC的界面,在网上搜集了很多图标,都是ICON格式,方便用于工具栏,控件等

    MFC ListControl 中checkbox 处理 图标ICON

    mfc LISTCONTROL控件上增加checkbox控 增加显示图标的功能,VC 6.0 MFC

    mfc 自绘控件实现 竖排TAB sheet控件

    mfc自带的tabsheet控件是横排按钮在上面的,这个自绘控件实现在左侧竖排的Tab选择,并且可以添加图标。

    MFC对基于话框添加工具条显示EDIT和LABEL 控件

    在MFC单文档对话框中添加工具栏,在工具栏中添加了一个LABEL控件和一个EDIT控件,放在对话框的底部,在对话框中添加了两个EDIT控件,在EDIT输入什么内容那么在工具栏的EDIT控件中就显示什么内容。挺好玩的,希望大家...

    mfc根据窗口大小自动调整所有控件大小

    mfc根据窗口大小自动调整所有控件大小,自己编的,希望对你有用

    树控件加载磁盘文件的实现

    熟悉在树控件上的相关操作。在用户指定加载某个目录或者磁盘后,可以通过层级结构显示该目录或磁盘下的所有文件,以及文件对应的系统图标,在用户双击摸个文件或者文件夹后可以调用对应的程序打开文件、文件夹;在...

    MFC控件自绘实例

    收录了MFC各种控件自定义的自绘,设置背景图标,热点图标,自绘文字包括按钮,列表,静态文本等控件。

    MFC 树的增删改

    MFC实现树控件的增加,删除,修改(包括图标切换)。

    MFC的自绘按钮,带图标

    MFC的自绘按钮,带图标,不会自绘的可以直接拿到项目中使用,只需改动一点点!我的自己写的测试程序,简单易懂。

    vc 在按钮上显示图标和文字

    能够在按钮上显示图标和文字,用到了CButton中的CButtonST类。在CButtonST类中对DrawItem函数进行重载,实现绘制图标的功能。

    MFC源代码 列表控件CListCtrl加载图片与文字

    该资源主要是讲述使用VS2012 MFC的CListCtrl(列表)控件加载类似于QQ界面的图片与文字数据.主要通过CListCtrl::InsertColumn、InsertItem、SetItemText向列表插入数据,CImageList插入BMP图片或ICON图标.是博客文章...

    MFC List控件间拖动

    List 报告向图标拖动 反过来写依然可以模仿 随意写着玩 大家可以看看 互相学习

    基于MFC的TeeChart控件

    基于VC中MFC的图表控件,可以实现各种图标显示,大量效果选择,功能强大,界面精美,是表格显示的不二选择。

    VC 为combox列表控件添加图标功能.rar

    VC 为combox列表控件添加图标功能,经过本改良后,下拉列表框每个内容项前面都会出现一个小图标,使用combox更专业化、更直观的显示各个内容项,要比纯文字的列表所展现的内容更全面,因为图标你可以根据自己的需要...

    MFC中exe图标修改的方法

    代码如下:m_hIcon = AfxGetApp()->LoadIcon(IDI_ICON1); SetIcon(m_hIcon, TRUE);... 您可能感兴趣的文章:MFC中动态创建控件以及事件响应实现方法MFC创建模态对话框和非模态对话框的方法MFC设置对

    01_CTreeCtrl_控件_MFC界面_

    MFC中TreeCtrl用法示例,采用对话框应用程序编程,MFC下TreeCtrl控件的使用方法,图标添加方法,图标动态改变等

Global site tag (gtag.js) - Google Analytics