向CListView控件发LVN_COLUMNCLICK消息

清泛原创

在窗体函数里向控件ListView发消息,让它根据指定列排序。

WM_NOTIFY消息是控件发向窗体的,MFC窗体再向控件反射部分消息,让控件自己处理:

BOOL ClickListColumn(CListCtrl& listCtrl, int index)
{
        if(index >= listCtrl.GetHeaderCtrl()->GetItemCount())
            return FALSE;

        NM_LISTVIEW nmListView;
        memset(&nmListView, 0, sizeof(nmListView));
        nmListView.iItem = -1;//NOT USED IN HERE
        nmListView.iSubItem = index;//INDEX VALUE
        nmListView.hdr.hwndFrom = listCtrl.GetSafeHwnd();
        nmListView.hdr.idFrom = listCtrl.GetDlgCtrlID();
        nmListView.hdr.code = LVN_COLUMNCLICK;

        return SendMessage(WM_NOTIFY, listCtrl.GetDlgCtrlID(), (LPARAM)&nmListView);
}

CListView LVN_COLUMNCLICK

分享到:
评论加载中,请稍后...
创APP如搭积木 - 创意无限,梦想即时!
回到顶部