我所listctrl的lvn_columnclick事件对应的排序弄好了。
为了让用户很容易 的使用到这个排序功能(单击listctrl的列标题这个能实现,但是不太直观),我想添加一个按钮控件。这个按钮的功能就是相当于单击列标题排序。所以问题就是:这个btN的click怎么和lvn_columnclick关联起来呢?
我感觉应该很容易,可是不知道要看什么资料。
望指点!

解决方案 »

  1.   

    点击按钮的时候向listctrl发消息
      

  2.   

    part 1: //这是按钮单击的一个响应
    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);
      //调用排序函数
    }好像是全了……
      

  3.   

    SendMessage(WM_GraderOrder,-1,2);
    这个参数2是对应第几列的意思