我所listctrl的lvn_columnclick事件对应的排序弄好了。
为了让用户很容易 的使用到这个排序功能(单击listctrl的列标题这个能实现,但是不太直观),我想添加一个按钮控件。这个按钮的功能就是相当于单击列标题排序。所以问题就是:这个btN的click怎么和lvn_columnclick关联起来呢?
我感觉应该很容易,可是不知道要看什么资料。
望指点!
为了让用户很容易 的使用到这个排序功能(单击listctrl的列标题这个能实现,但是不太直观),我想添加一个按钮控件。这个按钮的功能就是相当于单击列标题排序。所以问题就是:这个btN的click怎么和lvn_columnclick关联起来呢?
我感觉应该很容易,可是不知道要看什么资料。
望指点!
void CResultAnalysisDlg::OnGradeorder()
{
SendMessage(WM_GraderOrder,-1,2);}
part 2 ://这是自定义消息
#define WM_GraderOrder WM_USER+10
part3 ://这应该是建立消息映射的
BEGIN_MESSAGE_MAP(CResultAnalysisDlg, CDialog)
//{{AFX_MSG_MAP(CResultAnalysisDlg)
………………
ON_MESSAGE(WM_GraderOrder,DoGradeOrder)
………………
//}}AFX_MSG_MAP
END_MESSAGE_MAP()
part4 ://排序函数
//这个完全是自己添加的 myadd ,为了响应单击按钮的排序命令的
void CResultAnalysisDlg::DoGradeOrder(int x,int y)
//void CResultAnalysisDlg::DoGradeOrder(WPARAM iParam1,LPARAM iParam2)
//void CResultAnalysisDlg::DoGradeOrder(NMHDR* pNMHDR, LRESULT* pResult)
{
// TODO: Add your control notification handler code here //m_CtrlResultCsv.m_fAsc = TRUE ;
m_CtrlResultCsv.m_fAsc = !m_CtrlResultCsv.m_fAsc;
m_CtrlResultCsv.m_nSortedCol = 2;
//设置排序方式
//调用排序函数
int ItemCount =m_CtrlResultCsv.GetItemCount();
for (int i=0 ; i< ItemCount ; i++)
{
m_CtrlResultCsv.SetItemData(i,i);
}
m_CtrlResultCsv.SortItems(ListCompare,(LPARAM)&m_CtrlResultCsv);
//调用排序函数
}好像是全了……
这个参数2是对应第几列的意思