这段代码有什么错?为什么响应不了?(我想点击以后调用排序函数)
BOOL CMyListCtrl::OnNotify(WPARAM wParam, LPARAM lParam, LRESULT *pResult)
{
CHeaderCtrl *pCtrl = GetHeaderCtrl();
if ( pCtrl && IsWindow(pCtrl->GetSafeHwnd()) )
{
if ( wParam == (WPARAM)pCtrl->GetDlgCtrlID() )
{
NMHDR* phdr = (NMHDR*) lParam;
if( phdr->code == HDN_ITEMCLICK )
{
AfxMessageBox("Click Column");
return TRUE;
}
}
}
return CListCtrl::OnNotify(wParam, lParam, pResult);
}

解决方案 »

  1.   

    相应消息错了,应为LVN_COLUMNCLICK
      

  2.   

    cjlibrary6.08中的CCJListCtrl类已经实现了封装,而且有上下箭头,如果商业用的话,就没有必要自己写代码了,学习除外
      

  3.   

    LVN_COLUMNCLICK 是在对话框里用ON_NOTIFY响应的,我希望是在ListCtrl里响应,这是给别人用的List。
      

  4.   

    大家看看http://www.codeguru.com/listview/sort_on_col_click.shtml
    里面的例子,它在ListCtrl用的是
    ON_NOTIFY(HDN_ITEMCLICKA, 0, OnHeaderClicked) 我用:
    BOOL CMyListCtrl::OnNotify(WPARAM wParam, LPARAM lParam, LRESULT *pResult)
    {
    CHeaderCtrl *pCtrl = GetHeaderCtrl();
    if ( pCtrl && IsWindow(pCtrl->GetSafeHwnd()) )
    {
    if ( wParam == (WPARAM)pCtrl->GetDlgCtrlID() )
    {
    NMHDR* phdr = (NMHDR*) lParam;
    if( phdr->code == HDN_ITEMCLICK )
    {
    AfxMessageBox("Click Column");
    return TRUE;
    }
    }
    }
    return CListCtrl::OnNotify(wParam, lParam, pResult);
    }但是都响应不到,这是为什么??