Frame внутри Body

Программирование на Visual Basic, главный форум. Обсуждение тем программирования на VB 1—6.
Даже если вы плохо разбираетесь в VB и программировании вообще — тут вам помогут. В разумных пределах, конечно.
Правила форума
Темы, в которых будет сначала написано «что нужно сделать», а затем просьба «помогите», будут закрыты.
Читайте требования к создаваемым темам.
dr.MIG
Гуру
Гуру
Аватара пользователя
 
Сообщения: 1441
Зарегистрирован: 18.12.2004 (Сб) 9:53
Откуда: г.Ярославль

Frame внутри Body

Сообщение dr.MIG » 15.12.2007 (Сб) 13:43

Вопрос немного из разряда извращений, но всё же -- есть Frame (из стандартных элементов управления), есть WebBrowser. Frame "прикреплена" к определённой точке (просто позиционируется над ней) HTML-документа, который загружен в WebBrowser. При прокручивании документа Frame так же сдвигается -- с этим проблем нет. Проблема в том, что мне необходимо двигать Frame только внутри WebBrowser.Document, т.е. Frame за границами WebBrowser'a видно не должно быть.
Первый способ -- в процедуре прокрутки WebBrowser при достижении нижней границы просто уменьшать высоту Frame, что создаст эффект "иссчезновения" за границами. Но он какой-то извращенский, к тому же Frame нехорошо при этом дёргается.
Второй способ -- сделать SetParent (Frame1.hWnd, wbHWnd). При этом, естественно, если в WebBrowser'е есть горизонтальная полоса прокрутки, то Frame наползёт на неё (что бы этого не было нужен hWnd IHTMLDocument, находимый по способу Antonariy). Но даже в этом случае при прокрутке наблюдается какая-то "недопрорисовка" Frame.
У кого-нибудь есть соображения по этому поводу?
Salus populi suprema lex

Antonariy
Повелитель Internet Explorer
Повелитель Internet Explorer
Аватара пользователя
 
Сообщения: 4824
Зарегистрирован: 28.04.2005 (Чт) 14:33
Откуда: Мимо проходил

Сообщение Antonariy » 15.12.2007 (Сб) 19:54

Жесть :shock:
Попробуй засунуть в документ какой-нибудь активикс и сделать SetParent на него.
Лучший способ понять что-то самому — объяснить это другому.

dr.MIG
Гуру
Гуру
Аватара пользователя
 
Сообщения: 1441
Зарегистрирован: 18.12.2004 (Сб) 9:53
Откуда: г.Ярославль

Сообщение dr.MIG » 15.12.2007 (Сб) 21:40

Да, жесть. Выслушаю предложения по оптимизации. :)
Задача вообще-то следующая -- есть таблица в HTML-е надо иметь возможность редактировать содержимое её ячек. Причём HTML-объекты не устраивают по функционалу, нужны возможности VB, поэтому и используется Frame с ЭУ на ней, которые устанавливаются в активную ячейку...
Salus populi suprema lex

hCORe
VB - Экстремал
VB - Экстремал
Аватара пользователя
 
Сообщения: 2332
Зарегистрирован: 22.02.2003 (Сб) 15:21
Откуда: parent directory

Сообщение hCORe » 15.12.2007 (Сб) 22:49

Доктор, а может не надо фрейм? Может ActiveX + VBScript (или JScript)?
Моду создают модоки, а распространяют модозвоны.

Antonariy
Повелитель Internet Explorer
Повелитель Internet Explorer
Аватара пользователя
 
Сообщения: 4824
Зарегистрирован: 28.04.2005 (Чт) 14:33
Откуда: Мимо проходил

Сообщение Antonariy » 16.12.2007 (Вс) 10:34

Причём HTML-объекты не устраивают по функционалу
А что нужно-то? Лично мне пока удавалось воплотить любой требуемый функционал.
Лучший способ понять что-то самому — объяснить это другому.

dr.MIG
Гуру
Гуру
Аватара пользователя
 
Сообщения: 1441
Зарегистрирован: 18.12.2004 (Сб) 9:53
Откуда: г.Ярославль

Сообщение dr.MIG » 18.12.2007 (Вт) 19:02

hCORe, да, про ActiveX я думал...
Antonariy, да там, во-первых, Combo подрисованы под дизайн таблицы, но это, в принципе, ерунда. Во-вторых, меня что-то напугала работа с HTML-ными Combo -- удаление отдельных элементов, автозаполнение и т.д. Хотя, соответствующий класс из DOM не смотрел...
Salus populi suprema lex

ALX_2002
Мега гуру
Мега гуру
 
Сообщения: 2054
Зарегистрирован: 25.11.2002 (Пн) 20:03

Сообщение ALX_2002 » 18.12.2007 (Вт) 19:17

dr.MIG писал(а):hCORe, да, про ActiveX я думал...
Antonariy, да там, во-первых, Combo подрисованы под дизайн таблицы, но это, в принципе, ерунда. Во-вторых, меня что-то напугала работа с HTML-ными Combo -- удаление отдельных элементов, автозаполнение и т.д. Хотя, соответствующий класс из DOM не смотрел...


Может не совсем по теме, но в качестве альтернативного решения -

Что если сделать так - по щелчку на ячейке, её выделять и получать её как объект. В этот момент показывать интерфейсный элемент для ввода в неё данных (типа того же IтputBox) Передавать данные в ячейку ? И по кнопке ОК его скрывать ? :roll:

Пример приложил :)
Вложения
WebBrowser.zip
(2.06 Кб) Скачиваний: 53

dr.MIG
Гуру
Гуру
Аватара пользователя
 
Сообщения: 1441
Зарегистрирован: 18.12.2004 (Сб) 9:53
Откуда: г.Ярославль

Сообщение dr.MIG » 18.12.2007 (Вт) 19:59

Так я как раз так и делаю. Но InputBox неудобен, поэтому в контейнер (Frame) помещаю элементы управления и вывожу его над выбранной ячейкой. Всё это прекрасно работает, даже прокручивается, когда страница не умещается в WB... Моя проблема -- см. первый пост -- что бы этот интерфейсный элемент не выезжал за границы WB...
Salus populi suprema lex

ALX_2002
Мега гуру
Мега гуру
 
Сообщения: 2054
Зарегистрирован: 25.11.2002 (Пн) 20:03

Сообщение ALX_2002 » 18.12.2007 (Вт) 21:07

dr.MIG писал(а):Так я как раз так и делаю. Но InputBox неудобен, поэтому в контейнер (Frame) помещаю элементы управления и вывожу его над выбранной ячейкой. Всё это прекрасно работает, даже прокручивается, когда страница не умещается в WB... Моя проблема -- см. первый пост -- что бы этот интерфейсный элемент не выезжал за границы WB...


Да я видел первый пост, потому и извинлся что не по теме. Думал, что всё таки можно обойтись без мнимопрелепленного к странице фрейма :)

dr.MIG
Гуру
Гуру
Аватара пользователя
 
Сообщения: 1441
Зарегистрирован: 18.12.2004 (Сб) 9:53
Откуда: г.Ярославль

Сообщение dr.MIG » 18.12.2007 (Вт) 21:15

А, понял теперь тебя. Нет, там как раз надо, чтоб наглядно было. Иначе будет неудобно...
Salus populi suprema lex


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

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

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

    TopList