Preventing editing item labels in tree view
If we have created tree view control with the TVS_EDITLABELS style we can edit all its items labels. But sometimes we do need that not all tree view control items labels could be editable. So we must prevent editing of item labels we don't want to be editable. We can override the PreTranslateMessage() function:
BOOL CTreeCtrlX::PreTranslateMessage(MSG* pMsg)
{
if( pMsg->message == WM_LBUTTONDOWN )
{
UINT flag = TVHT_ONITEMLABEL;
CPoint pt = pMsg->pt;
ScreenToClient(&pt);
if( HitTest( pt, &flag ) == GetSelectedItem()
// && there you can check is the item which cannot be editable
)
{
SetFocus(); //We must set focus to the tree view control
//becouse it can have no focus
return TRUE ; // DO NOT process further
}
}
return CTreeCtrl::PreTranslateMessage(pMsg);
}
Date Posted: January 15, 1999