| Версия для печати темы
Нажмите сюда для просмотра этой темы в оригинальном формате |
| Форум программистов > C/C++: Общие вопросы > virtual list view |
| Автор: DENNN 24.5.2003, 11:26 | ||||||||
| VC 6.0, архитектура докуметн-вид. Вид наследован от COleDBRecordView на форме убрал все контролы и поместил ListCtrl с режимом owner data. Все прекрасно работает: по сообщениям LVN_GETDISPINFO передаю текст и т.п. Хочу ввести реакцию на изменение выделения или фокуса. В мсдн черным по белому написано, что для этого используется сообщение LVN_SETDISPINFO. Чтоб оно отправлялось окну-владельцу, надо задать маску сообющений LVM_SETCALLBACKMASK с параметрами : LVIS_CUT The item is marked for a cut-and-paste operation. LVIS_DROPHILITED The item is highlighted as a drag-and-drop target. LVIS_FOCUSED The item has the focus. LVIS_SELECTED The item is selected. LVIS_OVERLAYMASK The application stores the image list index of the current overlay image for each item. LVIS_STATEIMAGEMASK The application stores the image list index of the current state image for each item. также для virtual list view есть пометка, что для него доступны только режимы LVIS_FOCUSED и LVIS_SELECTED - то что нужно. задаю:
ловлю все сообщения, для четкого контроля что приходит написал в итоге так:
ставлю кучу точек останова. SetCallbackMask выполняется без ошибок (мфс код просто вызывает
Я бы забил и пользовался только LVN_ITEMACTIVATE, но оно вызывается только при щелчке мышью по итему, да и после удаления этого элемента мне никто не подскажет что выделения более нет. У кого-нибудь есть идеи почему LVN_SETDISPINFO не отправляется? p.s. Создание визардом обработчика
|
| Автор: DENNN 28.5.2003, 11:53 |
| Специали-и-и-и-исты! Где вы? |