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

  • Today's agile organizations pose operations teams with a tremendous challenge: to deploy new releases to production immediately after development and testing is completed. To ensure that applications are deployed successfully, an automatic and transparent process is required. We refer to this process as Zero Touch Deployment™. This white paper reviews two approaches to Zero Touch Deployment--a script-based solution and a release automation platform. The article discusses how each can solve the key …

  • On-demand Event Event Date: February 12, 2015 The evolution of systems engineering with the SysML modeling language has resulted in improved requirements specification, better architectural definition, and better hand-off to downstream engineering. Agile methods have proven successful in the software domain, but how can these methods be applied to systems engineering? Check out this webcast and join Bruce Powel Douglass, author of Real-Time Agility, as he discusses how agile methods have had a tremendous …

Most Popular Programming Stories

More for Developers

RSS Feeds

Thanks for your registration, follow us on our social networks to keep up-to-date