Неподскажите как обработать сообщение от CClistCtrl при изменении ширины столбйов, т.е. когда в заголовке списка начинаешь перетаскивать край столбца. Через Spy++ пытался отследить, но почему-то при нажатии на край столбца приходит множество сообщений WM_TIMER!???
Здравствуйте Mintchenkov, Вы писали:
M>Неподскажите как обработать сообщение от CClistCtrl при изменении ширины столбйов, т.е. когда в заголовке списка начинаешь перетаскивать край столбца. Через Spy++ пытался отследить, но почему-то при нажатии на край столбца приходит множество сообщений WM_TIMER!???
WM_NOTIFY
На codeguru.com вычитал: при инициализации листконтрола
CHeaderCtrl* pHeader = GetHeaderCtrl();
LONG style = GetWindowLong(pHeader->GetSafeHwnd(),GWL_STYLE);
style |= HDS_FULLDRAG;
SetWindowLong(pHeader->GetSafeHwnd(),GWL_STYLE,style);
Потом перекрой виртуальную OnNotify(...):
BOOL CMyListCtrl::OnNotify(WPARAM wParam, LPARAM lParam, LRESULT* pResult)
{
NMHDR *nmhdr = (NMHDR *)lParam;
CHeaderCtrl* pHeader = GetHeaderCtrl();
if (nmhdr->hwndFrom == pHeader->GetSafeHwnd())
{
if ((nmhdr->code == HDN_ITEMCHANGINGW)
||(nmhdr->code == HDN_ITEMCHANGEDW))
{
//что тебе надо
}
}
return CListCtrl::OnNotify(wParam, lParam, pResult);
}