我有一个MFC应用程序写在Visual Studio 6中,我加入了一些新功能。 我希望能够做的是显示上下文菜单,当用户上的属性页中的列表控件标题栏右侧点击。 中加入的CListCtrl类查看类向导。
通过类向导的属性页,我添加了一个处理程序上的listctrl点击右键。 这不被调用,并添加以下代码摸出如果R单击置于标题部分,如果是的话,其标题项目。 像这样
POINT Point;
GetCursorPos (&Point);
ScreenToClient(&Point);
HDHITTESTINFO HitTest;
//Offset of right scrolling
HitTest.pt.x = Point.x+ m_ctrlRecordList.GetScrollPos(SB_HORZ); //Offset of right scrolling
HitTest.pt.y = Point.y;
//Send the Hit Test Message
m_ctrlRecordList.GetHeaderCtrl()->SendMessage(HDM_HITTEST,0,(LPARAM)&HitTest);
// Check hit test result.
*pResult = 0;
然而,点击测试总是返回-1。
我尝试了左键单击,而不是通过处理在属性页的页眉控制的HDN_ItemClick消息。 这是在类向导全部完成,所以我希望能够在这里处理此通知。 然而,从我迄今的研究,有可能是在MFC中的臭虫类向导把这个代码到你对你的代码,但这个通知将永远是多远的列表控件的父。 这样的话?
什么是做到这一点的最好方法是什么? 我宁愿上点击右键,但左击,如果必要会做。