А как узнать текущий Open/Save Dialog's Listview (THUMBNAIL,REPORT)? - VB

Узнай цену своей работы

Формулировка задачи:

Konst_One,
вот этот пример, что вы привели:

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

ИИ поможет Вам:


  • решить любую задачу по программированию
  • объяснить код
  • расставить комментарии в коде
  • и т.д
Попробуйте бесплатно

Оцени полезность:

14   голосов , оценка 4.286 из 5
Похожие ответы