VC listcontrol 如何响应右键列头

VC里边只有左键列头的响应函数,如何完成右键响应呢,我想在列头右键做一些操作,高手帮下忙。。... VC里边只有左键 列头的响应函数,如何完成右键响应呢,我想在列头右键做一些操作,高手帮下忙。。 展开
 我来答
LongNotDragon
2012-04-28 · TA获得超过151个赞
知道小有建树答主
回答量:162
采纳率:0%
帮助的人:177万
展开全部
1.创建一个继承于CHeaderCtrl的新类CHeaderCtrlEx
2.创建一个继承于CListCtrl的新类CListCtrlEx
3.为CListCtrlEx包含CHeaderCtrlEx的头文件并定义一个成员变量 CHeaderCtrlEx m_Header;
4.为CListCtrlEx实现虚函数virtual void PreSubclassWindow();在函数的实现如下:
void CListCtrlEx::PreSubclassWindow()
{
// TODO: Add your specialized code here and/or call the base class

CListCtrl::PreSubclassWindow();

CHeaderCtrl *pHeader = GetHeaderCtrl();
m_Header.SubclassWindow(pHeader->GetSafeHwnd());
}
5.为CHearCtrlEx添加右键消息:
afx_msg void OnRButtonUp(UINT nFlags, CPoint point);
在消息的实现里可以产生一个自定义消息给主程序(SendMessage/PostMessage),也可以直接在里面实现你的代码。

================================
#include "HeaderCtrlEx.h"
/////////////////////////////////////////////////////////////////////////////
// CListCtrlEx window

class CListCtrlEx : public CListCtrl
{
// Construction
public:
CListCtrlEx();

CHeaderCtrlEx m_Header;

// Attributes
public:

// Operations
public:

// Overrides
// ClassWizard generated virtual function overrides
//{{AFX_VIRTUAL(CListCtrlEx)
protected:
virtual void PreSubclassWindow();
//}}AFX_VIRTUAL

// Implementation
public:
virtual ~CListCtrlEx();

// Generated message map functions
protected:
//{{AFX_MSG(CListCtrlEx)
//}}AFX_MSG

DECLARE_MESSAGE_MAP()
};

/////////////////////////////////////////////////////////////////////////////

//{{AFX_INSERT_LOCATION}}
// Microsoft Visual C++ will insert additional declarations immediately before the previous line.

===============================

class CHeaderCtrlEx : public CHeaderCtrl
{
// Construction
public:
CHeaderCtrlEx();

// Attributes
public:

// Operations
public:

// Overrides
// ClassWizard generated virtual function overrides
//{{AFX_VIRTUAL(CHeaderCtrlEx)
//}}AFX_VIRTUAL

// Implementation
public:
virtual ~CHeaderCtrlEx();

// Generated message map functions
protected:
//{{AFX_MSG(CHeaderCtrlEx)
afx_msg void OnRButtonUp(UINT nFlags, CPoint point);
afx_msg void OnLButtonUp(UINT nFlags, CPoint point);
//}}AFX_MSG

DECLARE_MESSAGE_MAP()
};
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

下载百度知道APP,抢鲜体验
使用百度知道APP,立即抢鲜体验。你的手机镜头里或许有别人想知道的答案。
扫描二维码下载
×

类别

我们会通过消息、邮箱等方式尽快将举报结果通知您。

说明

0/200

提交
取消

辅 助

模 式