Управление видом контрола WebBrowser

Программирование на Visual Basic, главный форум. Обсуждение тем программирования на VB 1—6.
Даже если вы плохо разбираетесь в VB и программировании вообще — тут вам помогут. В разумных пределах, конечно.
Правила форума
Темы, в которых будет сначала написано «что нужно сделать», а затем просьба «помогите», будут закрыты.
Читайте требования к создаваемым темам.
SAS
Продвинутый пользователь
Продвинутый пользователь
 
Сообщения: 101
Зарегистрирован: 21.06.2005 (Вт) 0:30
Откуда: Петропавловск-Камчатский

Управление видом контрола WebBrowser

Сообщение SAS » 21.06.2005 (Вт) 0:36

При использовании элемента WebBrowser иногда необходимо в нем просматривать локальные папки и файлы (как в проводнике). Стиль отображения содержимого папки (Эскизы страниц, таблица, список, упорядочение и др.) могут изменяться с помощью контекстного меню (по правому щелчку мыши). Можно ли использовать другой метод для изменения стиля отображения содержимого локальной папки?
Последний раз редактировалось SAS 21.06.2005 (Вт) 3:22, всего редактировалось 1 раз.

SHURUP
Постоялец
Постоялец
Аватара пользователя
 
Сообщения: 440
Зарегистрирован: 15.09.2004 (Ср) 14:24
Откуда: Ирпень, Украина

Сообщение SHURUP » 21.06.2005 (Вт) 3:14

единственный выход который я нашел - посылать LVM_SETVIEW. в ХР работает (кроме эскизов страниц)
Нам чужого не надо, но своё мы возьмем, чьё бы оно ни было...

SAS
Продвинутый пользователь
Продвинутый пользователь
 
Сообщения: 101
Зарегистрирован: 21.06.2005 (Вт) 0:30
Откуда: Петропавловск-Камчатский

Сообщение SAS » 21.06.2005 (Вт) 3:17

SHURUP писал(а):единственный выход который я нашел - посылать LVM_SETVIEW. в ХР работает (кроме эскизов страниц)


А можно слегка подробнее :?:

Alexanbar
Продвинутый гуру
Продвинутый гуру
Аватара пользователя
 
Сообщения: 1727
Зарегистрирован: 13.04.2004 (Вт) 23:04
Откуда: Волгоградская обл.

Сообщение Alexanbar » 21.06.2005 (Вт) 17:17

'Public function SendMessage.......
'Public Const LV_VIEW_LIST=....не помню
'есть также константы:
'LV_VIEW_DETAILS
'LV_VIEW_ICON
'LV_VIEW_SMALLICON
'LV_VIEW_TILE


SendMessage listview1.hwnd,LVM_SETVIEW,LV_VIEW_LIST,0

SAS
Продвинутый пользователь
Продвинутый пользователь
 
Сообщения: 101
Зарегистрирован: 21.06.2005 (Вт) 0:30
Откуда: Петропавловск-Камчатский

Сообщение SAS » 22.06.2005 (Ср) 9:17

Alexanbar писал(а):'Public function SendMessage.......
'Public Const LV_VIEW_LIST=....не помню
'есть также константы:
'LV_VIEW_DETAILS
'LV_VIEW_ICON
'LV_VIEW_SMALLICON
'LV_VIEW_TILE
SendMessage listview1.hwnd,LVM_SETVIEW,LV_VIEW_LIST,0


Большое спасибо. Я все понял про SendMessage, но только где взять значения констант?

Alexanbar
Продвинутый гуру
Продвинутый гуру
Аватара пользователя
 
Сообщения: 1727
Зарегистрирован: 13.04.2004 (Вт) 23:04
Откуда: Волгоградская обл.

Сообщение Alexanbar » 22.06.2005 (Ср) 11:25

Public Const LVM_FIRST = &H1000
Public Const LVM_SETVIEW = (LVM_FIRST + 142)
Public Const LV_VIEW_ICON = &H0&
Public Const LV_VIEW_DETAILS = &H1&
Public Const LV_VIEW_SMALLICON = &H2&
Public Const LV_VIEW_LIST = &H3&
Public Const LV_VIEW_TILE = &H4&

Дмитрий_pro
Начинающий
Начинающий
 
Сообщения: 13
Зарегистрирован: 20.06.2005 (Пн) 15:21
Откуда: Косторма

Сообщение Дмитрий_pro » 22.06.2005 (Ср) 12:32

Alexanbar
А у меня к Вам вопрос: как можно прочитать код страницы, короче произвести то же, что делает блокнот.
Блокнот заменит может быть TextBox
К людям надо относиться мягче, а к себе шерше!

Amed
Алфизик
Алфизик
 
Сообщения: 5346
Зарегистрирован: 09.03.2003 (Вс) 9:26

Сообщение Amed » 22.06.2005 (Ср) 13:43

Смотрите свойства
webbrowser.Innertext или webbrowser.innerhtml

Amed
Алфизик
Алфизик
 
Сообщения: 5346
Зарегистрирован: 09.03.2003 (Вс) 9:26

Сообщение Amed » 22.06.2005 (Ср) 13:46

Поправочка. Смотрите свойства

WebBrowser1.Document.documentelement.innerhtml
WebBrowser1.Document.Body.innerhtml

SAS
Продвинутый пользователь
Продвинутый пользователь
 
Сообщения: 101
Зарегистрирован: 21.06.2005 (Вт) 0:30
Откуда: Петропавловск-Камчатский

Сообщение SAS » 22.06.2005 (Ср) 21:58

Alexanbar писал(а):Public Const LVM_FIRST = &H1000
Public Const LVM_SETVIEW = (LVM_FIRST + 142)
Public Const LV_VIEW_ICON = &H0&
Public Const LV_VIEW_DETAILS = &H1&
Public Const LV_VIEW_SMALLICON = &H2&
Public Const LV_VIEW_LIST = &H3&
Public Const LV_VIEW_TILE = &H4&



Моему спасибу нет предела! :D

SAS
Продвинутый пользователь
Продвинутый пользователь
 
Сообщения: 101
Зарегистрирован: 21.06.2005 (Вт) 0:30
Откуда: Петропавловск-Камчатский

Сообщение SAS » 22.06.2005 (Ср) 22:30

Alexanbar писал(а):Public Const LVM_FIRST = &H1000
Public Const LVM_SETVIEW = (LVM_FIRST + 142)
Public Const LV_VIEW_ICON = &H0&
Public Const LV_VIEW_DETAILS = &H1&
Public Const LV_VIEW_SMALLICON = &H2&
Public Const LV_VIEW_LIST = &H3&
Public Const LV_VIEW_TILE = &H4&


Все хорошо, но при выполнении
Код: Выделить всё
SendMessage WebBrowser.hwnd, LVM_SETVIEW, LV_VIEW_ICON, 0

или просто
Код: Выделить всё
msgbox WebBrowser.hwnd
сообщается об ошибке:
Run-time error '-2147467259 (80004005)':
Method 'HWND' of object 'IWebBrowser2' failed

может быть это связано с тем, что у меня элемент webbrowser помещен не на форме, а на usercontrole?

SAS
Продвинутый пользователь
Продвинутый пользователь
 
Сообщения: 101
Зарегистрирован: 21.06.2005 (Вт) 0:30
Откуда: Петропавловск-Камчатский

Сообщение SAS » 22.06.2005 (Ср) 22:45

Amed писал(а):Поправочка. Смотрите свойства

WebBrowser1.Document.documentelement.innerhtml
WebBrowser1.Document.Body.innerhtml


А можно подробнее? :oops:

SAS
Продвинутый пользователь
Продвинутый пользователь
 
Сообщения: 101
Зарегистрирован: 21.06.2005 (Вт) 0:30
Откуда: Петропавловск-Камчатский

Сообщение SAS » 22.06.2005 (Ср) 23:03

Amed писал(а):Поправочка. Смотрите свойства

WebBrowser1.Document.documentelement.innerhtml
WebBrowser1.Document.Body.innerhtml


кстати, если использовать код
Код: Выделить всё

MsgBox WebBrowser1.Document.documentelement.innerhtml
MsgBox WebBrowser1.Document.Body.innerhtml

когда содержимое webbrowser'а - html страница, то msgboxы показывают html код, а если содержимое webbrowser'а - структура файлов и папок (как в проводнике), генерируется ошибка 438-объект не поддерживает это свойство или метод. Значит, когда у webbrowser'a url стоит на локальные папки, он вставляет в себя другой объект типа проводника? Как у него поменять вид (кроме как через контекстное меню)?

SHURUP
Постоялец
Постоялец
Аватара пользователя
 
Сообщения: 440
Зарегистрирован: 15.09.2004 (Ср) 14:24
Откуда: Ирпень, Украина

Сообщение SHURUP » 24.06.2005 (Пт) 2:29

Сорри, перед автором топика за то, что ляпнул... а мысль до конца не довел, но меня за неуплату отрубили...
Вот пример, как сделать мелкие значки в вебброузере.
Код: Выделить всё
Private Declare Function FindWindowEx Lib "user32" Alias "FindWindowExA" (ByVal hWnd1 As Long, ByVal hWnd2 As Long, ByVal lpsz1 As String, ByVal lpsz2 As String) As Long
Private Declare Function SendMessage Lib "user32.dll" Alias "SendMessageA" (ByVal hwnd As Long, ByVal wMsg As Long, ByVal wParam As Long, ByRef lParam As Any) As Long

Private Const LVM_FIRST = &H1000
Private Const LVM_SETVIEW = (LVM_FIRST + 142)
Private Const LV_VIEW_ICON = &H0&
Private Const LV_VIEW_DETAILS = &H1&
Private Const LV_VIEW_SMALLICON = &H2&
Private Const LV_VIEW_LIST = &H3&
Private Const LV_VIEW_TILE = &H4&

Private Sub Form_Load()
Dim zz As Long
    WebBrowser1.Navigate "D:\"
    zz = WebBrowser1.Container.hwnd
    zz = FindWindowEx(zz, 0, "Shell Embedding", vbNullString)
    zz = FindWindowEx(zz, 0, "SHELLDLL_DefView", vbNullString)
    zz = FindWindowEx(zz, 0, "SysListView32", vbNullString)
    SendMessage zz, LVM_SETVIEW, LV_VIEW_SMALLICON, 0
End Sub

Работает с крупными, мелкими значками и списком. Эскизы страниц - еще не получилось, плитка - не такая как в ХР, а при режиме таблица - (DETAILS) обновляется только после правого клика...
-------
Да простят меня гуры за извращенный метод, нодругих не умеем.
Нам чужого не надо, но своё мы возьмем, чьё бы оно ни было...

SAS
Продвинутый пользователь
Продвинутый пользователь
 
Сообщения: 101
Зарегистрирован: 21.06.2005 (Вт) 0:30
Откуда: Петропавловск-Камчатский

Сообщение SAS » 24.06.2005 (Пт) 2:59

SHURUP писал(а):Сорри, перед автором топика за то, что ляпнул... а мысль до конца не довел, но меня за неуплату отрубили...

Не стоит извинений. Спасибо, что вспомнил :) . лучше когда-то, чем никогда.
SHURUP писал(а):Работает с крупными, мелкими значками и списком. Эскизы страниц - еще не получилось, плитка - не такая как в ХР, а при режиме таблица - (DETAILS) обновляется только после правого клика...
-------

Это просто круто. Наиогромнейшее спасибо. просто слов нет. я прыгаю, аж вулканы трясутся.
SHURUP писал(а):Да простят меня гуры за извращенный метод, нодругих не умеем.

А почему собственно ты считаешь это извращением?

SAS
Продвинутый пользователь
Продвинутый пользователь
 
Сообщения: 101
Зарегистрирован: 21.06.2005 (Вт) 0:30
Откуда: Петропавловск-Камчатский

Сообщение SAS » 16.08.2005 (Вт) 2:02

SHURUP писал(а):Эскизы страниц - еще не получилось, плитка - не такая как в ХР, а при режиме таблица - (DETAILS) обновляется только после правого клика...

Может у тебя уже получилось? :?

SAS
Продвинутый пользователь
Продвинутый пользователь
 
Сообщения: 101
Зарегистрирован: 21.06.2005 (Вт) 0:30
Откуда: Петропавловск-Камчатский

Сообщение SAS » 16.08.2005 (Вт) 2:03

SHURUP писал(а):Эскизы страниц - еще не получилось, плитка - не такая как в ХР, а при режиме таблица - (DETAILS) обновляется только после правого клика...

В смысле эскизы страниц?


Вернуться в Visual Basic 1–6

Кто сейчас на конференции

Сейчас этот форум просматривают: нет зарегистрированных пользователей и гости: 111

    TopList