我点了这个控件的头,进行排序
那个控件也进行排序
不是很方便。
我需要分开处理

解决方案 »

  1.   

    BOOL   C*****Dlg::OnNotify(WPARAM   wParam,   LPARAM   lParam,   LRESULT*   pResult)  中NMHDR   *P=(NMHDR*)lParam;   
    P->idFrom;//可区分谁的WM_NOTIFY
      

  2.   

    if (pHDNotify->hdr.code == HDN_ITEMCLICKA || pHDNotify->hdr.code == HDN_ITEMCLICKW &&P->idFrom==IDC_LIST1)
    {
    if (pHDNotify->iItem == m_nSortedCol)
    SortColumn(pHDNotify->iItem, !m_bAscending);
    else
    SortColumn(pHDNotify->iItem, BoolType(m_header.GetAscending()));
    }这个是排序的,但是点击 listctrl2也会运行
    因为消息是广播的吧。
    怎么避免
      

  3.   

    一般处理排序分开来吧,处理SortItems的回调函数
      

  4.   

    有点烦了
     用了全局变量去得id号
    然后去sort里判断也不行if (   pHDNotify->hdr.code == HDN_ITEMCLICKA || pHDNotify->hdr.code == HDN_ITEMCLICKW )
    {
    if (pHDNotify->iItem == m_nSortedCol)
    {
    i=pHDNotify->hdr.idFrom;
    SortColumn(pHDNotify->iItem, !m_bAscending);
     
    }
    else
    SortColumn(pHDNotify->iItem, BoolType(m_header.GetAscending()));
    }
      

  5.   


    SortColumn(int iCol, bool bAsc)
    {
              HWND hWnd=::GetFocus();
    int iID=::GetDlgCtrlID(hWnd);
    }
    OnNotify 里调用SortColumn我不管先点哪个List。iID都是先点击的那个
    郁闷坏了~