LVN_COLUMNCLICK Notification, как его отловить?
От: pseudor  
Дата: 06.06.07 09:31
Оценка:
Нубский вопрос...
В MSDN написано:

This notification message is sent in the form of a WM_NOTIFY message.

Тогда ловим WM_NOTIFY.
Как в обработчике понять, что именно от LVN_COLUMNCLICK этот WM_NOTIFY?
Можно пример кода?

У меня нет WndProc, а в хэдэре задаётся маппинг:


BEGIN_MSG_MAP(thisClass) 
        MESSAGE_HANDLER(WM_CREATE, OnCreate) 
        MESSAGE_HANDLER(WM_DESTROY, OnDestroy) 
        MESSAGE_HANDLER(CWM_INITIALIZE, OnInit) 
        MESSAGE_HANDLER(WM_RBUTTONDOWN, OnNMRclickList) 
        MESSAGE_HANDLER(WM_INITMENUPOPUP, OnInitMenuPopup) 
        MESSAGE_HANDLER(WM_LBUTTONDBLCLK, OnLDblClick) 
        MESSAGE_HANDLER(WM_LBUTTONUP, OnLClick) 
        ... 
        MESSAGE_HANDLER(WM_NOTIFY, OnWMNotify) 
        ... 
        CHAIN_MSG_MAP(baseClass) 
        DEFAULT_REFLECTION_HANDLER() 
END_MSG_MAP()


Потом в OnWMNotify:

LRESULT ZxView::OnWMNotify(UINT uMsg, WPARAM wParam, LPARAM lParam, BOOL& bHandled) { 
        if ( ((LPNMHDR)lParam)->code == LVN_COLUMNCLICK ) { 
                bool isdesc = IsSortDescending(); 
                int nmb = GetSortColumn(); 
        } 
        return 0; 
}


Но при нажатии на колонку не изменяется маркер сортировки (маленький треугольник) и в if выполнение не заходит.

И есть ли ещё варианты отловить нажатие на заголовок колонки?
Спасибо.

06.06.07 14:08: Перенесено модератором из '.NET GUI' — Odi$$ey
 
Подождите ...
Wait...
Пока на собственное сообщение не было ответов, его можно удалить.