本文介绍了仅在项目的双击事件中编辑TreeCtrl中的标签的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!

问题描述

在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中的标签的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持!

10-11 11:23