А как узнать текущий Open/Save Dialog's Listview (THUMBNAIL,REPORT)? - VB
Формулировка задачи:
Konst_One,
вот этот пример, что вы привели:
http://vbnet.mvps.org/code/hooks/fileopensavedlghooklvview.htm
в этой теме
https://www.sql.ru/forum/actualthread.aspx?bid=22&tid=735867&hl=
Он замечательный.
Хотя бесполезный для Висты, ибо там вид каждой папки запоминается итак системно, и данный код ничего кроме бардака не даст.
Но для XP очень так ничего.
Собственно вопрос в чем.
Юзер может выбирать вид Listview: иконки,таблица,report из системного тулбар в диалоге.
Т.е. как спросить у Диалога (у Listview) напр. перед закрытием диалога: а в каком состоянии ты сейчас находишься (миниатюры, иконки, report)? Чтобы запомнить это значение и отображать в след. раз в том же виде?
Чтоб не лепить в программе лишних настроек, но эту возможность использовать неявно.
Я попробовал покопать в сторону
LVM_GETVIEW Message и LVM_SETVIEW Message
но это совсем не то, нужно именно в рамках той модели что в указанном примере
т.е. как получить
Sendmessage (hwnd(ID_LIST), Get(SHVIEW_) ) =SHVIEW_THUMBNAIL? SHVIEW_REPORT ?SHVIEW_LIST...
вот этот пример, что вы привели:
GetOpenFileName: Set an Open/Save Dialog's Initial Listview View
http://vbnet.mvps.org/code/hooks/fileopensavedlghooklvview.htm
в этой теме
https://www.sql.ru/forum/actualthread.aspx?bid=22&tid=735867&hl=
Он замечательный.
Хотя бесполезный для Висты, ибо там вид каждой папки запоминается итак системно, и данный код ничего кроме бардака не даст.
Но для XP очень так ничего.
Собственно вопрос в чем.
Юзер может выбирать вид Listview: иконки,таблица,report из системного тулбар в диалоге.
Т.е. как спросить у Диалога (у Listview) напр. перед закрытием диалога: а в каком состоянии ты сейчас находишься (миниатюры, иконки, report)? Чтобы запомнить это значение и отображать в след. раз в том же виде?
Чтоб не лепить в программе лишних настроек, но эту возможность использовать неявно.
Я попробовал покопать в сторону
LVM_GETVIEW Message и LVM_SETVIEW Message
но это совсем не то, нужно именно в рамках той модели что в указанном примере
т.е. как получить
Sendmessage (hwnd(ID_LIST), Get(SHVIEW_) ) =SHVIEW_THUMBNAIL? SHVIEW_REPORT ?SHVIEW_LIST...
Решение задачи: «А как узнать текущий Open/Save Dialog's Listview (THUMBNAIL,REPORT)?»
textual
Листинг программы
Static hwndLv As Long Case CDN_FOLDERCHANGE Debug.Print "CDN_FOLDERCHANGE" If IsWinVista = False Then 'снимаем предыдущий сабклассинг "SHELLDLL_DefView" SetWindowLong hwndLv, GWL_WNDPROC, OldFolderViewWindowProc hWndParent = GetParent(hwnd) hwndLv = FindWindowEx(hWndParent, 0, "SHELLDLL_DefView", vbNullChar) Debug.Print hwndLv If hwndLv > 0 Then 'сабклассим "SHELLDLL_DefView" заново (hwndLv другой) OldFolderViewWindowProc = SetWindowLong( _ hwndLv, GWL_WNDPROC, _ AddressOf NewFolderViewWindowProc) End If End If
ИИ поможет Вам:
- решить любую задачу по программированию
- объяснить код
- расставить комментарии в коде
- и т.д