· Начало · Отвђтить · Статистика · Поиск · FAQ · Правила · Установки · Язык · Выход · WASM.RU · Noir.Ru ·

 WASM Phorum —› WASM.WIN32 —› LVN_GETDISPINFO

Посл.отвђт Сообщенiе


Дата: Авг 15, 2004 03:05:26

Иногда в "SysListView32" много строк, и имеет смысл вставлять иконки только для видимой (в данный момент) части листа (через сообщение LVN_GETDISPINFO). Но как сделать так чтобы начало показывались строки а потом (когда все видимые строки появились) вставить иконки.


Дата: Авг 15, 2004 13:05:46

_evil

имеет смысл вставлять иконки только для видимой (в данный момент) части

говорит о том, что LVS_OWNERDATA не установлен. Если это так, то LVN_GETDISPINFO не придёт.
Установи LVS_OWNERDATA и заблокируй обработку запроса с маской LVIF_IMAGE до прихода и обработки запросов с маской LVIF_TEXT для всех видимых итемов (и субитемов).


Дата: Авг 15, 2004 21:03:04

ещё один вопрос, пожалуйста – SHGetFileInfo даёт индекс иконки (из SYS – листа ) но очень медленно а Internet Explorer(проводник) быстрее каким макаром ?


Дата: Авг 15, 2004 21:24:55

Что за прикол делаю "SysListView32" с флагом LVS_OWNERDATA всё виснет .
Хотя без него контрол шлет родителю LVN_GETDISPINFO через WM_NOTIFY и если его обработать то он нормально вставляет (LVN_GETDISPINFO pnmv = (LV_DISPINFO FAR *) lParam;)

“заблокируй обработку запроса с маской LVIF_IMAGE” – можно по подробней


Дата: Авг 15, 2004 22:23:15

„Хотя без него контрол шлет родителю LVN_GETDISPINFO через WM_NOTIFY “

Странно как-то, у меня не шлёт LVN_GETDISPINFO без LVS_OWNERDATA. Насколько я понимаю, LVN_GETDISPINFO посылается только virtual listview, хотя может я и ошибаюсь.

„“заблокируй обработку запроса с маской LVIF_IMAGE” – можно по подробней“
Предполагалось, что у тебя virtual listview, и от него можно было получить через сообщение LVN_ODCACHEHINT номера, которые будут перерисовываться (с какого по какой итем), запоминать эти два номера (в структуре NMLVCACHEHINT - iFrom и iTo) и пока для итемов с номерами от iFrom до iTo не пройдут запросы текста (LVIF_TEXT) через LVN_GETDISPINFO и не заполнены для них .item.pszText, обработку запроса с маской LVIF_IMAGE пропускать. Тогда и появлялись бы сначала строки, а затем уже иконки.
Но раз у тебя не virtual, то iFrom и iTo не получишь.
Что касается SHGetFileInfo и explorer'a, возможно explorer пользуется другими источниками, а не SHGetFileInfo. Мож в реестре где смотрит.


Дата: Авг 16, 2004 00:21:58

Спасибо ты меня просветила !!!
а сообщение LVN_GETDISPINFO у меня приходило наверно из за индекса иконки == I_IMAGECALLBACK;


Powered by miniBB 1.6 © 2001-2002
Время загрузки страницы (сек.): 0.060