VC树形控件每个子节点添加不同图片,如何实现

我按照网上这个说明添加的,hIcon[0]=theApp.LoadIcon(IDI_WEB_ICON);但是运行后为什么不识别theApp还有LoadIcon创建一个基于... 我按照网上这个说明添加的, hIcon[0] = theApp.LoadIcon(IDI_WEB_ICON);
但是运行后为什么不识别 theApp还有LoadIcon

创建一个基于对话框的MFC工程,名称设置为“Example31”。
2. 在自动生成的对话框模板IDD_EXAMPLE31_DIALOG中,删除“TODO: Place dialog controls here.”静态文本框、“OK”按钮和“Cancel”按钮。添加一个Tree Control控件,ID设置为IDC_WEB_TREE,属性Has Buttons、Has Lines和Lines At Root都设为True,为了在鼠标划过某个节点时显示提示信息还需要将Info Tip属性设为True。再添加一个静态文本框和一个编辑框,静态文本框的Caption属性设为“您选择的节点:”,编辑框的ID设为IDC_ITEM_SEL_EDIT,Read Only属性设为True。
3. 导入需要为树形控件的节点添加的图标。鸡啄米在这里找了三个32x32的Icon图标,保存到工程的res目录下。然后在Resource View资源视图中,右键点击Icon节点,在右键菜单中选择“Add Resource...”,弹出“Add Resource”对话框,再从左边“Resource type”列表中选择“Icon”,点击右边的“Import...”按钮,就可以选择三个图标文件进行导入了。导入成功后,分别修改它们ID为IDI_WEB_ICON、IDI_CATALOG_ICON和IDI_ARTICLE_ICON。
4. 为树形控件IDC_WEB_TREE添加CTreeCtrl类型的控件变量m_webTree。
5. 在对话框初始化时,我们在树形控件中添加鸡啄米网站的树形结构,那么需要修改CExample29Dlg::OnInitDialog()函数为:
C++代码
BOOL CExample31Dlg::OnInitDialog()
{
CDialogEx::OnInitDialog();
......略
// TODO: Add extra initialization here
HICON hIcon[3]; // 图标句柄数组
HTREEITEM hRoot; // 树的根节点的句柄
HTREEITEM hCataItem; // 可表示任一分类节点的句柄
HTREEITEM hArtItem; // 可表示任一文章节点的句柄

// 加载三个图标,并将它们的句柄保存到数组
hIcon[0] = theApp.LoadIcon(IDI_WEB_ICON);
hIcon[1] = theApp.LoadIcon(IDI_CATALOG_ICON);
hIcon[2] = theApp.LoadIcon(IDI_ARTICLE_ICON);

// 创建图像序列CImageList对象
m_imageList.Create(32, 32, ILC_COLOR32, 3, 3);
// 将三个图标添加到图像序列
for (int i=0; i<3; i++)
{
m_imageList.Add(hIcon[i]);
}
展开
 我来答
bhtzu
2015-05-10 · TA获得超过1.1万个赞
知道大有可为答主
回答量:8088
采纳率:85%
帮助的人:4192万
展开全部

不清楚哪里的示例代码。不过在MFC中,并不推荐直接使用theApp,而是使用AfxGetApp,你尝试修改如下:

hIcon[0] = AfxGetApp()->LoadIcon(IDI_WEB_ICON);
追问
MFC树形控件(CTreeCtrl)用法(下) - - 博客频道 - CSDN.NET http://blog.csdn.net/bruce_zeng/article/details/8046098
我是按照这里面的做的
如果我想把父节点下的八个子节点都添加图标,并且每个图标都不一样,怎么做呢?按照上面的做法好像有问题,一运行就停止了。
来自:求助得到的回答
忽忽上升
2015-05-10 · TA获得超过1911个赞
知道小有建树答主
回答量:1166
采纳率:70%
帮助的人:574万
展开全部
是不是你没有在KFCDlg中#include "KFC.h"?
theApp 是在KFC.cpp中定义的:
// 唯一的一个 CKFCApp 对象
CKFCApp theApp;
我照着鸡啄米的这个练习了,没有任何问题。
更多追问追答
追问
CKFCApp theApp;  我没有添加这个  为什么要用这个对象调用呢? 谢谢 现在好了
追答
这个对象不是自己添加的,你每建立一个应用程序工程就会有App类,每个应用程序都是一个App类的对象。LoadIcon加载的是该对象的资源,所以需要使用App对象theApp.
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

下载百度知道APP,抢鲜体验
使用百度知道APP,立即抢鲜体验。你的手机镜头里或许有别人想知道的答案。
扫描二维码下载
×

类别

我们会通过消息、邮箱等方式尽快将举报结果通知您。

说明

0/200

提交
取消

辅 助

模 式