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.

More by Author

Get the Free Newsletter!

Subscribe to Developer Insider for top news, trends & analysis

Must Read