在MFC的CListCtrl控件里,怎么实现当鼠标在一定的列时就执行特定的函数?

来源:百度知道 编辑:UC知道 时间:2024/05/12 05:06:18
有一个CListCtrl控件:
CListCtrl pListCtrl;
在该控件里有两列,分别是“学号”、“姓名”。现在我想要在它下面的记录(行)中使用鼠标双击,如果我鼠标双击时的列位置在“姓名”下,就对我选中的本条记录(行)的名字进行操作(函数fun1);如果我鼠标双击时的列位置在“学号”下,就对我获得的本条记录(行)的学号传递给另外的类(函数fun2)。请问要怎么做呢?(最好有示例代码)
急用,高分悬赏:两天内解决有代码追加50分(好象最高只能追加这么多?不是可以追加更多,只求各位大侠尽快指教),解决问题追加30分以上!

加一个类:CListCtrlR
头文件:
class CListCtrlR : public CListCtrl
{
public:
CListCtrlR(){}
virtual ~CListCtrlR(){}
void SetParentDlg( CWnd* pDlg );
protected:
//{{AFX_VIRTUAL(CListCtrlR)
afx_msg void OnLButtonDblClk(UINT nFlags, CPoint point);
//}}AFX_VIRTUAL
private:
CWnd* m_pDlg ;
DECLARE_MESSAGE_MAP()
};

cpp文件:
BEGIN_MESSAGE_MAP(CListCtrlR, CListCtrl)
//{{AFX_MSG_MAP(CListCtrlR)
ON_WM_LBUTTONDBLCLK()
//}}AFX_MSG_MAP
END_MESSAGE_MAP()

void CListCtrlR::OnLButtonDblClk(UINT nFlags, CPoint point)
{
LVHITTESTINFO lvht ;
lvht.pt = point ;
int nItem = CListCtrl::SubItemHitTest( &lvht ) ;
int nCol = lvht.iSubItem;//得到列索引

CAaaaDlg* pDlg = (CAaaaDlg*)m_pDlg ;//CAaaaDlg是对话框类名
if ( nCol == 0 )
{
//添加操作pDlg->…
}
}

void CListCtrlR::SetParentDlg( CWnd* pDlg )
{
m_pDlg = pDlg ;