dcsimg

Preventing editing item labels in tree view

WEBINAR:
On-Demand

Application Security Testing: An Integral Part of DevOps



This article was contributed by Marius Bakelis.

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);
}




Comments

  • Preventing editing item labels in tree view

    Posted by Legacy on 08/05/1999 12:00am

    Originally posted by: Chris Grieve

    This was a great help but it has a tiny buggette in the way that HitTest is used which stops you D&D ing something by the icon that is already selected. This is the correction;
    
    

    As before except;

    UINT flag = 0;


    if( ( ( tree.HitTest( pt, &flag ) == tree.GetSelectedItem()
    &&( flag & TVHT_ONITEMLABEL ) ) // new bit
    && ( FALSE ) ) // your check in here

    But I wouldn't have got this far without the original code(!)

    Thanks

    Chris

    Reply
  • Why not handle TVN_BEGINLABELEDIT notification?

    Posted by Legacy on 01/16/1999 12:00am

    Originally posted by: Peter Schregle

    A more straightforward way to inhibit label editing would be to handle the TVM_BEGINLABELEDIT notification. Return FALSE to allow and TRUE to cancel label editing.

    Reply
  • You must have javascript enabled in order to post comments.

Leave a Comment
  • Your email address will not be published. All fields are required.

Top White Papers and Webcasts

  • We are in the middle of a computing revolution. All signs point to the rapid adoption of cloud computing as a means to facilitate not just changes in development methodologies, but changes to the very nature of IT architecture and maintenance.  But migrating to the cloud is not a simple matter. As with all disruptive technologies, any cloud migration initiative must be approached with caution, and based on a strategy that includes big-picture thinking with exacting attention to security issues. Read this …

  • A CRM solution holds a wealth of information and document generation tools allow users to take that information and create documents with both visual appeal and function. Document generation is the process of automatically producing a file and document generation applications save companies time, mistakes, and money. You bought Salesforce to be more efficient — why are you still manually creating proposals, contracts, invoices, and account plans? Read this eBook to learn how you can automate virtually …

Most Popular Programming Stories

More for Developers

RSS Feeds

Thanks for your registration, follow us on our social networks to keep up-to-date
×
We have made updates to our Privacy Policy to reflect the implementation of the General Data Protection Regulation.