У него оказывается занят ItemData под свои собственные нужды!!
Т.е. я не могу использовать ни SetItemData() ни GetItemData().
А как тогда его кастомизировать, например для показа замтнейлов и т.д. ?
п...ц получается полный... Как бы это поэлегантнее решить ?
Здравствуйте, alex6565, Вы писали:
A>п...ц получается полный... Как бы это поэлегантнее решить ?
Стандартные методы SetItemData и GetItemData "работают" через сообщения LVM_GETITEM и LVM_SETITEM. Если этот контрол работает так же, можно перехватить эти сообщения, чтобы подменять указатели на сохраняемые данные. Т.е., в контроле ты сохраняешь указатели на свою структуру данных, в которых надо выделить место под указатель на "внешние" данные. В обработчиках LVM_GETITEM и LVM_SETITEM "прозрачно" меняешь указатель на "внешние" данные и указатель на свою структуру. Для непосредственного доступа к данным, реально сохраненным в контроле, используешь явный вызов DefWindowProc.
Имею скафандр — готов путешествовать!
Re[2]: Проблема с новым контролом CMFCShellListCtrl
Здравствуйте, rus blood, Вы писали:
RB>Здравствуйте, alex6565, Вы писали:
A>>п...ц получается полный... Как бы это поэлегантнее решить ?
RB>Стандартные методы SetItemData и GetItemData "работают" через сообщения LVM_GETITEM и LVM_SETITEM. Если этот контрол работает так же, можно перехватить эти сообщения, чтобы подменять указатели на сохраняемые данные. Т.е., в контроле ты сохраняешь указатели на свою структуру данных, в которых надо выделить место под указатель на "внешние" данные. В обработчиках LVM_GETITEM и LVM_SETITEM "прозрачно" меняешь указатель на "внешние" данные и указатель на свою структуру. Для непосредственного доступа к данным, реально сохраненным в контроле, используешь явный вызов DefWindowProc.
спасибо за совет.
Могет быть и так...
...ну да...
а еще InsertItem & DeleteItem перехватить, ибо они там этот ItemData создают и сотв. удаляют.
....
Пока что заменил их родной метод virtual EnumFiles() на свой, где и делаю типо "меняешь указатель на "внешние" данные и указатель на свою структуру" — — —
Что то кривизна, что это ...
ЗЫ
За невозможность использовать стандартные Get/SetItemData() надо отрывать руки, ноги и то что между ног.
BCG, бляха муха.