用了InsertItem( LPCTSTR lpszItem, int nImage, int nSelectedImage, HTREEITEM hParent = TVI_ROOT, HTREEITEM hInsertAfter = TVI_LAST);
如何控制成只有双击的时候nSelectedImage才起作用,其它的什么单击呀都显示nImage
如何控制成只有双击的时候nSelectedImage才起作用,其它的什么单击呀都显示nImage
初始为 m_bDoubleClicked=FALSE2.为Tree 增加以下事件:NM_DBLCLK,TVN_SELCHANGING,TVN_SELCHANGED3.事件代码:
NM_DBLCK:
m_bDoubleClicked=TRUE;
CPoint pt;
GetCursorPos(&pt);
m_tree.ScreenToClient(&pt);
UINT flag;
HTREEITEM htree=m_tree.HitTest(pt,&flag);
if(htree!=NULL){
m_tree.Select(htree,TVGN_CARET);
}
*pResult = 0;
TVN_SELCHANGING:
NM_TREEVIEW* pNMTreeView = (NM_TREEVIEW*)pNMHDR;
if(m_bDoubleClicked){
*pResult = 0;
}else{
*pResult = 1;
} TVN_SELCHANGED:
NM_TREEVIEW* pNMTreeView = (NM_TREEVIEW*)pNMHDR;
m_bDoubleClicked=FALSE;
*pResult = 0;就是如此简单.
厉害,厉害,但是,不知你有没有看过联众的聊天室的那种CTree,双击此item后,此item前的图变化,再当击AnotherItem时,焦点停留在AnotherItem上,而你的做法又回到了原来的Item上了?
我想做的就是在你完成的功能上有所改进.
改进就是当单击某个Item时,焦点落在该Item上,而前一次双击的Item的状态不变.(而你的功能是当我单击某个Item时,焦点又回到了前一次双击的Item)