这几天遇到一个小问题,却一直困扰我,感觉太不可思议了,真是想不通啊,现在把问题的处理扩大化,请各位给以帮助:
在CTreeCtl中InsertItem总是不好使,界面始终不现实插入的item。部分代码如下:(一个继承了CTreeCtl的类)
----------------
#define ITEMMASK TVIF_TEXT | TVIF_IMAGE | TVIF_SELECTEDIMAGE | TVIF_PARAM | TVIF_HANDLETVINSERTSTRUCT ins;
ins.item.mask = ITEMMASK;
ins.hParent = hParent;
ins.item.pszText = (LPTSTR)(LPCTSTR)pNode->GetID();
ins.item.lParam = (LPARAM)(void *)Node;
ins.item.iImage = IMAGE_LINK;
ins.item.iSelectedImage = IMAGE_LINK;
HTREEITEM hi = NULL;
hi = this->InsertItem(&ins);
TRACE("");
------------------
通过debug察看,ins的对应项已经被赋值,hi的值发生变化,没有error发生,就是不能显示插入的item。
(注:执行这个操作前,tree控件上原来有item。控件和显示是没有问题的)
在CTreeCtl中InsertItem总是不好使,界面始终不现实插入的item。部分代码如下:(一个继承了CTreeCtl的类)
----------------
#define ITEMMASK TVIF_TEXT | TVIF_IMAGE | TVIF_SELECTEDIMAGE | TVIF_PARAM | TVIF_HANDLETVINSERTSTRUCT ins;
ins.item.mask = ITEMMASK;
ins.hParent = hParent;
ins.item.pszText = (LPTSTR)(LPCTSTR)pNode->GetID();
ins.item.lParam = (LPARAM)(void *)Node;
ins.item.iImage = IMAGE_LINK;
ins.item.iSelectedImage = IMAGE_LINK;
HTREEITEM hi = NULL;
hi = this->InsertItem(&ins);
TRACE("");
------------------
通过debug察看,ins的对应项已经被赋值,hi的值发生变化,没有error发生,就是不能显示插入的item。
(注:执行这个操作前,tree控件上原来有item。控件和显示是没有问题的)
解决方案 »
- cpu本身并没有线程/进程的概念,那么线程/进程的调度,win32 api是怎么实现的?
- SQL 查询问题
- Windows消息机制的实现?
- *************我有一个全局线程函数,用于网络监听,有新用户连接时,将新用户信息显示在TreeView上,如何在线程函数中访问TreeView
- 能介绍几篇关于C++在网络编程方面优点的文章吗?
- 可有办法获得窗口中用DrawText写入的文本的CRect位置?
- CBrush问题
- CString的转换~~~15分钟给分
- 序列化问题
- 在CEditView中,怎样利用standard Find dialog box实现类似于记事本的查找功能?
- 请推荐一款好的用C++/C写的UI库
- vc真的很难吗???
ins.hInsertAfter = TVI_SORT;
ins.hParent = hParent;
this->InsertItem(&ins);
如果hParent 是一个无效值的话,就不能插入的,我这里的hParent 是通过代码计算出来的,也许是出了问题了。呵呵