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

  • The mobile market is white hot. Building a well-crafted product development plan that addresses market research, strategy, design, and development will provide the greatest chance for success. Each phase of an app's lifecycle is critical to the its overall success and feeds into the next step of the process of product development for the app. This white paper examines the five key phases of mobile app creation, one by one, to understand how they work together to help create a successful mobile app.

  • According to a 2014 Javelin Strategy & Research Study, there is a new victim of fraud every two seconds – and that's just in the U.S. With identity theft and consumer fraud rising, and more frequent and sizable data breaches in the news, financial institutions need to work harder than ever to protect their customers and their business. Download this white paper to learn how you can use multi-channel communications to minimize the costs of fraud while also increasing customer loyalty.

Most Popular Programming Stories

More for Developers

RSS Feeds

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