MFC 为树形控件添加图标

来源:互联网 发布:雅马哈电子琴知乎 编辑:程序博客网 时间:2024/05/20 22:01

添加控件,树形控件,静态文本框和编辑框。树形控件属性Has Buttons,Has Lines, Lines At Root 勾选为True.

并为树形控件添加变量,m_webTree



在初始化函数中添加代码:


// TODO:  在此添加额外的初始化代码// 定义树形控件句柄HTREEITEM hRoot;HTREEITEM hSon;HTREEITEM hGrandson;// 添加根节点hRoot = m_webTree.InsertItem(L"生活用品", 0, 0);// 二级结点hSon = m_webTree.InsertItem(L"衣服", 1, 1, hRoot, TVI_LAST);// 三级结点hGrandson = m_webTree.InsertItem(L"男装", 2, 2, hSon, TVI_LAST);hGrandson = m_webTree.InsertItem(L"女装", 2, 2, hSon, TVI_LAST);hGrandson = m_webTree.InsertItem(L"童装", 2, 2, hSon, TVI_LAST);// 二级结点hSon = m_webTree.InsertItem(L"食品", 1, 1, hRoot, TVI_LAST);// 三级结点hGrandson = m_webTree.InsertItem(L"休闲零食", 2, 2, hSon, TVI_LAST);hGrandson = m_webTree.InsertItem(L"时鲜果蔬", 2, 2, hSon, TVI_LAST);hGrandson = m_webTree.InsertItem(L"美酒佳酿", 2, 2, hSon, TVI_LAST);hGrandson = m_webTree.InsertItem(L"滋补养生", 2, 2, hSon, TVI_LAST);// 二级结点hSon = m_webTree.InsertItem(L"家电", 1, 1, hRoot, TVI_LAST);// 三级结点hGrandson = m_webTree.InsertItem(L"厨具", 2, 2, hSon, TVI_LAST);// 四级m_webTree.InsertItem(L"电饭煲", 3, 3, hGrandson, TVI_LAST);m_webTree.InsertItem(L"电磁炉", 3, 3, hGrandson, TVI_LAST);m_webTree.InsertItem(L"热水壶", 3, 3, hGrandson, TVI_LAST);// 三级hGrandson = m_webTree.InsertItem(L"彩电", 2, 2, hSon, TVI_LAST);hGrandson = m_webTree.InsertItem(L"空调", 2, 2, hSon, TVI_LAST);hGrandson = m_webTree.InsertItem(L"洗衣机", 2, 2, hSon, TVI_LAST);

此时,运行后树形控件里就有东西了。

下一步是在编辑框中显示选择的项目

双击树形控件来编程:

void CTreeDlg::OnTvnSelchangedTree1(NMHDR *pNMHDR, LRESULT *pResult){LPNMTREEVIEW pNMTreeView = reinterpret_cast<LPNMTREEVIEW>(pNMHDR);// TODO:  在此添加控件通知处理程序代码*pResult = 0;CString strText;HTREEITEM hTree;hTree = m_webTree.GetSelectedItem();          // 获取树形控件句柄strText = m_webTree.GetItemText(hTree);       // 获取选择的项目SetDlgItemText(IDC_EDIT1, strText);           // 在编辑框设置选择的项目}

此时,运行后,编辑框中就能显示选择的项目了。

下一部是添加图标.

首先添加资源,添加32x32的.ioc位图资源

在dlg.h头文件中添加一个pubilic图像列表类对象

// 图像列表类对象CImageList m_imagelist;
在初始化区域添加代码来添加图标

// 添加图标HICON hIcon[4];// 加载图标hIcon[0] = theApp.LoadIconW(IDI_ICON1);hIcon[1] = theApp.LoadIconW(IDI_ICON2);hIcon[2] = theApp.LoadIconW(IDI_ICON3);hIcon[3] = theApp.LoadIconW(IDI_ICON4);// 创建图标序列CImageList对象m_imageList.Create(32, 32, ILC_COLOR32, 3, 3);// 将三个图标添加到图像序列for (int i = 0; i < 4; i++){m_imageList.Add(hIcon[i]);}// 为树形控件设置图像序列m_webTree.SetImageList(&m_imageList, TVSIL_NORMAL);

此时图标就添加成功了。
















1 0