CReportCtrl里面已经有OnColumnclick函数.
在窗口类里面填加LVN_COLUMNCLICK响应函数
OnColumnclickListstock(NMHDR* pNMHDR, LRESULT* pResult)
{
NM_LISTVIEW* pNMListView = (NM_LISTVIEW*)pNMHDR;
// TODO: Add your control notification handler code here
*pResult = 0;
}
点击列头的时候,上面事件触发不了
14 个解决方案
#1
这里的类呢::OnColumnclickListstock
#2
afx_msg void OnColumnclickListstock(NMHDR* pNMHDR, LRESULT* pResult);
BEGIN_MESSAGE_MAP(CDlgCallBDWService, CDialog)
//{{AFX_MSG_MAP(CDlgCallBDWService)
ON_NOTIFY(LVN_COLUMNCLICK, IDC_LISTSTOCK, OnColumnclickListstock)
//}}AFX_MSG_MAP
END_MESSAGE_MAP()
void CDlgCallBDWService::OnColumnclickListstock(NMHDR* pNMHDR, LRESULT* pResult)
{
NM_LISTVIEW* pNMListView = (NM_LISTVIEW*)pNMHDR;
// TODO: Add your control notification handler code here
*pResult = 0;
}
BEGIN_MESSAGE_MAP(CDlgCallBDWService, CDialog)
//{{AFX_MSG_MAP(CDlgCallBDWService)
ON_NOTIFY(LVN_COLUMNCLICK, IDC_LISTSTOCK, OnColumnclickListstock)
//}}AFX_MSG_MAP
END_MESSAGE_MAP()
void CDlgCallBDWService::OnColumnclickListstock(NMHDR* pNMHDR, LRESULT* pResult)
{
NM_LISTVIEW* pNMListView = (NM_LISTVIEW*)pNMHDR;
// TODO: Add your control notification handler code here
*pResult = 0;
}
#3
CReportCtrl m_ctrlList;
DDX_Control(pDX, IDC_LISTSTOCK, m_ctrlList);
CReportCtrl能实现点击列头排序的功能,但是现在我想在点击列头的时候还执行别的操作,但是
void CDlgCallBDWService::OnColumnclickListstock(NMHDR* pNMHDR, LRESULT* pResult)
根本不触发
DDX_Control(pDX, IDC_LISTSTOCK, m_ctrlList);
CReportCtrl能实现点击列头排序的功能,但是现在我想在点击列头的时候还执行别的操作,但是
void CDlgCallBDWService::OnColumnclickListstock(NMHDR* pNMHDR, LRESULT* pResult)
根本不触发
#4
窗口类不能响应的原因是:
要在窗口类的初始化函数中,子类化一下CHeadCtrl,加一句
m_ctYourHeader.SubclassWindow(m_pYourListCtrl->GetHeaderCtrl()->GetSafeHwnd());
你在试试!~~
#5
m_ctYourHeader是什么
#6
跟子类化有什么关系。。
#7
从代码看不出什么问题,你在函数里设个断点试试,我以前用都是可以的。实在不行你直接在CReportCtrl的OnColumnclick里改试试可能执行到,估计是list跟变量没有关联好,delete掉重建
#8
m_ctYourHeader就是列头控件
#9
CReportCtrl m_ctrlList;
但是我如果改成 CListCtrl m_ctrlList;
这样就能响应了
CReportCtrl已经是写好的类,不能再改了
但是我如果改成 CListCtrl m_ctrlList;
这样就能响应了
CReportCtrl已经是写好的类,不能再改了
#10
feiniaoliang(飞鸟良) :
m_ctYourHeader就是列头控件
怎样得到列头控件,麻烦你说的具体一点,不太明白
m_ctYourHeader就是列头控件
怎样得到列头控件,麻烦你说的具体一点,不太明白
#11
我看错问题了!不好意思!~~
#12
mark
#13
mark
#14
CReportCtrl里面已经有OnColumnclick函数.
=============
因为控件中已经处理了,对话框就不能再处理这个消息。
方法是修改控件中的消息返回值,但是这样也不用再对话框中处理了,不如在控件中处理。
=============
因为控件中已经处理了,对话框就不能再处理这个消息。
方法是修改控件中的消息返回值,但是这样也不用再对话框中处理了,不如在控件中处理。
#1
这里的类呢::OnColumnclickListstock
#2
afx_msg void OnColumnclickListstock(NMHDR* pNMHDR, LRESULT* pResult);
BEGIN_MESSAGE_MAP(CDlgCallBDWService, CDialog)
//{{AFX_MSG_MAP(CDlgCallBDWService)
ON_NOTIFY(LVN_COLUMNCLICK, IDC_LISTSTOCK, OnColumnclickListstock)
//}}AFX_MSG_MAP
END_MESSAGE_MAP()
void CDlgCallBDWService::OnColumnclickListstock(NMHDR* pNMHDR, LRESULT* pResult)
{
NM_LISTVIEW* pNMListView = (NM_LISTVIEW*)pNMHDR;
// TODO: Add your control notification handler code here
*pResult = 0;
}
BEGIN_MESSAGE_MAP(CDlgCallBDWService, CDialog)
//{{AFX_MSG_MAP(CDlgCallBDWService)
ON_NOTIFY(LVN_COLUMNCLICK, IDC_LISTSTOCK, OnColumnclickListstock)
//}}AFX_MSG_MAP
END_MESSAGE_MAP()
void CDlgCallBDWService::OnColumnclickListstock(NMHDR* pNMHDR, LRESULT* pResult)
{
NM_LISTVIEW* pNMListView = (NM_LISTVIEW*)pNMHDR;
// TODO: Add your control notification handler code here
*pResult = 0;
}
#3
CReportCtrl m_ctrlList;
DDX_Control(pDX, IDC_LISTSTOCK, m_ctrlList);
CReportCtrl能实现点击列头排序的功能,但是现在我想在点击列头的时候还执行别的操作,但是
void CDlgCallBDWService::OnColumnclickListstock(NMHDR* pNMHDR, LRESULT* pResult)
根本不触发
DDX_Control(pDX, IDC_LISTSTOCK, m_ctrlList);
CReportCtrl能实现点击列头排序的功能,但是现在我想在点击列头的时候还执行别的操作,但是
void CDlgCallBDWService::OnColumnclickListstock(NMHDR* pNMHDR, LRESULT* pResult)
根本不触发
#4
窗口类不能响应的原因是:
要在窗口类的初始化函数中,子类化一下CHeadCtrl,加一句
m_ctYourHeader.SubclassWindow(m_pYourListCtrl->GetHeaderCtrl()->GetSafeHwnd());
你在试试!~~
#5
m_ctYourHeader是什么
#6
跟子类化有什么关系。。
#7
从代码看不出什么问题,你在函数里设个断点试试,我以前用都是可以的。实在不行你直接在CReportCtrl的OnColumnclick里改试试可能执行到,估计是list跟变量没有关联好,delete掉重建
#8
m_ctYourHeader就是列头控件
#9
CReportCtrl m_ctrlList;
但是我如果改成 CListCtrl m_ctrlList;
这样就能响应了
CReportCtrl已经是写好的类,不能再改了
但是我如果改成 CListCtrl m_ctrlList;
这样就能响应了
CReportCtrl已经是写好的类,不能再改了
#10
feiniaoliang(飞鸟良) :
m_ctYourHeader就是列头控件
怎样得到列头控件,麻烦你说的具体一点,不太明白
m_ctYourHeader就是列头控件
怎样得到列头控件,麻烦你说的具体一点,不太明白
#11
我看错问题了!不好意思!~~
#12
mark
#13
mark
#14
CReportCtrl里面已经有OnColumnclick函数.
=============
因为控件中已经处理了,对话框就不能再处理这个消息。
方法是修改控件中的消息返回值,但是这样也不用再对话框中处理了,不如在控件中处理。
=============
因为控件中已经处理了,对话框就不能再处理这个消息。
方法是修改控件中的消息返回值,但是这样也不用再对话框中处理了,不如在控件中处理。