如何设置CTreeCtrl的节点展开时一种图标,关闭时另一种图标? 点item前面的+ -和双击item都会打开和关闭节点那代码应该加在那个事件中呢?另外,如何得到这个节点的HTREEITEM?(它有可能不是选中的节点阿)谢谢! 解决方案 » 免费领取超大流量手机卡,每月29元包185G流量+100分钟通话, 中国电信官方发货 不用自己写代码,系统会自动为你做,如下:CImageList m_lstImage;CTreeCtrl *m_pTreeCtrl;//记得初始化;m_lstImage.Create(IDB_YOURIMAGE, 16, 1, RGB(0,255,0));//IDB_YOURIMAGE是一系列大小为16的 //位图,和工具条一样;m_pTreeCtrl->SetImageList(&m_lstImage, TVSIL_NORMAL);//将位图系列赋值给树控件;m_pTreeCtrl->InsertItem("节点名称", 3, 4, htiParent, TVI_LAST);//插入节点;//其中3、4代表:当节点收起时显示图片系列中的第3张图片,当节点展开时,显示第4张图片,这样就达到你的目标了 fengqinggao(风清高) : 谢谢!你的方法设定的是选中和未选中的图标。但是问题在于: 展开的节点未必是选中的那个阿。比如A节点展开了,但是你选中的却是B.我需要设置展开节点的图标。 呵呵,不好意思,看错了,这个消息响应中应该可以处理:TVN_ITEMEXPANDEDNotifies a tree view control's parent window that a parent item's list of child items has expanded or collapsed 看这里的效果http://www.vckbase.com/document/viewdoc/?id=466 fengqinggao(风清高) :msdn里面没有例子阿看完还是不知道怎么加进去说详细点怎么用吗? laiyiling(陌生人·钻研MS技术) :这个例子好像不是展开节点的 在你的TreeCtrl上,单击右键,选择“事件(Events)”(或者按Ctrl+W打开,在左边选中你的TreeCtrl的ID,右边就会有其相应的事件),里面就有一个TVN_ITEMEXPANDED的消息。添加后的函数中系统自动添加这样一个语句:NM_TREEVIEW* pNMTreeView = (NM_TREEVIEW*)pNMHDR;就从这里下手,当你展开或者收起时会激发这个函数,其中结构指针pNMTreeView的action参数,就记录了是打开还是关闭,即if(pNMTreeView->action == 1) //收起;else if(pNMTreeView->action == 2) //展开;至于具体怎么添加图片,我就不帮你研究了,呵呵 上面的语句这么写可能更容易看清楚写:if(pNMTreeView->action == 1)//收起;{ //设置收起后的图片;}else if(pNMTreeView->action == 2)//展开;{ //设置展宽后的图片;} 求如何数据显示成曲线 重写msgina.dll导出函数WlxInitialize,出现瞬间蓝屏然后不断重启? 请问,用VC怎么实现让一个程序每隔一段时间就运行一次? 怎样修改MessageBox上面按钮的文字? 如何编程将计算机串口的发送针保持低电平? 调查:这是一个骗局,你会上当吗? 50分求助 platform sdk 请问谁知道哪里有delauny三角剖分的原码,撒分啦!! 我想在下列程序中动态显示或不显示一个Button, 运行时为什么会出错? 可以记录指定文件家下的文件的变更(创建,删除,改动等)的api?? 基于单文档的菜单是从哪里装入的? 问一个mfc窗口传值的问题
CImageList m_lstImage;
CTreeCtrl *m_pTreeCtrl;//记得初始化;m_lstImage.Create(IDB_YOURIMAGE, 16, 1, RGB(0,255,0));//IDB_YOURIMAGE是一系列大小为16的
//位图,和工具条一样;
m_pTreeCtrl->SetImageList(&m_lstImage, TVSIL_NORMAL);//将位图系列赋值给树控件;
m_pTreeCtrl->InsertItem("节点名称", 3, 4, htiParent, TVI_LAST);//插入节点;
//其中3、4代表:当节点收起时显示图片系列中的第3张图片,当节点展开时,显示第4张图片,这样就达到你的目标了
你的方法设定的是选中和未选中的图标。但是问题在于: 展开的节点未必是选中的那个阿。
比如A节点展开了,但是你选中的却是B.我需要设置展开节点的图标。
TVN_ITEMEXPANDEDNotifies a tree view control's parent window that a parent item's list of child items has expanded or collapsed
http://www.vckbase.com/document/viewdoc/?id=466
msdn里面没有例子阿
看完还是不知道怎么加进去说详细点怎么用吗? laiyiling(陌生人·钻研MS技术) :
这个例子好像不是展开节点的
NM_TREEVIEW* pNMTreeView = (NM_TREEVIEW*)pNMHDR;就从这里下手,当你展开或者收起时会激发这个函数,其中结构指针pNMTreeView的action参数,就记录了是打开还是关闭,即
if(pNMTreeView->action == 1)
//收起;
else if(pNMTreeView->action == 2)
//展开;至于具体怎么添加图片,我就不帮你研究了,呵呵
if(pNMTreeView->action == 1)//收起;
{
//设置收起后的图片;
}
else if(pNMTreeView->action == 2)//展开;
{
//设置展宽后的图片;
}