问题描述
在MFC中,在CTreeCtrl 我只想在双击项目文本时编辑标签。单击我不想编辑标签。
In MFC, in CTreeCtrl I want to edit labels only when double clicking the item text.On single click I dont want to edit the label.
如何实现它?
'谢谢。
推荐答案
void
CMyDialog :: OnNMDblclkTree1(
NMHDR * pNMHDR ,
LRESULT * pResult
)
voidCMyDialog::OnNMDblclkTree1(NMHDR *pNMHDR,LRESULT *pResult )
{
CPoint p;
GetCursorPos(& p);
myTree.ScreenToClient(& p);
HTREEITEM h = myTree.HitTest(p);
HTREEITEM h = myTree.HitTest( p );
if (h)
{
if (myTree.EndEditLabelNow(
FALSE ))
{
myTree.SelectItem(h);
myTree.EditLabel(h);
}
}
* pResult
= TRUE ;
}
为了禁用通常的普通默认编辑模式,请尝试以下操作:将一些布尔成员设置为
myTree.EditLabel 之前的,然后是 false 。处理
TVN_BEGINLABELEDIT 并按顺序检查布尔值取消标签编辑。
In order to disable the usual normal default editing mode, try this: set some boolean member totrue before myTree.EditLabel, then to false after. HandleTVN_BEGINLABELEDIT and check the boolean value in order to cancel the label editing.
这篇关于仅在项目的双击事件中编辑TreeCtrl中的标签的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持!