Handling right-click on the CListCtrl header control

Environment: VC6 

An alternative to Zafir Andum's approach on determining right click on the header control is to use the HDM_HITTEST message in order to determine  on which header item the user right clicked. This saves you the "for" loop for the determination of the column.

Here is an example:

BOOL CMyListtCtrl::OnNotify(WPARAM wParam, LPARAM lParam, LRESULT* pResult)
{
 if( wParam==0 && ((NMHDR*)lParam)->code ==NM_RCLICK)
 {
  POINT Point;
  GetCursorPos (&Point);
  ScreenToClient(&Point);
  HDHITTESTINFO HitTest;

  HitTest.pt.x = Point.x;
  HitTest.pt.y = Point.y;
  // Send the Hit Test Message

  GetHeaderCtrl()->SendMessage(HDM_HITTEST,0,(LPARAM)&HitTest);
 }
}

The HDHITTESTINFO structure holds the column index in its iItem member. 

Finally on the part of my colleagues and me, we would like to thank codeguru for the immense help it has given us the last year.



Comments

  • Wide controls

    Posted by czesiek120 on 01/24/2008 01:53am

    Coordinates need to be recalculated using HeaderCtrl not ListCtrl. Therefore change ScreenToClient(&Point); to GetHeaderCtrl()->ScreenToClient(&Point);

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

Top White Papers and Webcasts

  • Java developers know that testing code changes can be a huge pain, and waiting for an application to redeploy after a code fix can take an eternity. Wouldn't it be great if you could see your code changes immediately, fine-tune, debug, explore and deploy code without waiting for ages? In this white paper, find out how that's possible with a Java plugin that drastically changes the way you develop, test and run Java applications. Discover the advantages of this plugin, and the changes you can expect to see …

  • Savvy enterprises are discovering that the cloud holds the power to transform IT processes and support business objectives. IT departments can use the cloud to redefine the continuum of development and operations—a process that is becoming known as DevOps. Download the Executive Brief DevOps: Why IT Operations Managers Should Care About the Cloud—prepared by Frost & Sullivan and sponsored by IBM—to learn how IBM SmartCloud Application services provide a robust platform that streamlines …

Most Popular Programming Stories

More for Developers

Latest Developer Headlines

RSS Feeds