В одном из своих материалов мы сказали, что веб-браузер сделать легко. И сейчас мы это продемонстрируем в Borland C++ Builder v.6.0.
Без паники, в этом материале, свой движок писать не придется, мы воспользуемся готовым. От Internet Explorer.
Создаем форму распологаем на ней элемент CppWebBrowser с вкладки Internet. У нас он самый крайний справа. И добавим кнопку Button, и Edit, чтобы вводить адрес. Получаем подобное:
Рисунок 1.
В большом белом прямоугольнике и будет появлятся страница сайта. Но сначала опишем события по клику на кнопке или можно в событии onEnter у Edit`а.
CppWebBrowser1->Navigate(StringToOleStr(Edit1->Text));
Кратко получилось. Но больше-то ничего и не надо. Повторимся, больше НИЧЕГО НЕ НАДО для начала.
Теперь добавим несколько кнопок которые мы привыкли видеть в современных браузерах. Это будут кнопки - Назад, Вперед, Домашняя страница, Остановить, Обновить.
Хотя если кто-то привык обходится без кнопок, то горячие клавиши действуют без дополнительных манипуляций. Например, по F5 - обновляется страница. Итак получили что-то вроде этого:
Рисунок 2.
Код для кнопок приведен несколькими строками, но имей ввиду, на каждую кнопку приходится только одна(!) строка. Одна кнопка = одна функция. На всякий случай мы сделали пояснения.
CppWebBrowser1->GoBack(); //кнопка Назад
CppWebBrowser1->GoForward(); //кнопка Вперед
CppWebBrowser1->Stop(); //кнопка Стоп
CppWebBrowser1->Refresh(); //кнопка Обновить
CppWebBrowser1->GoHome(); //кнопка Домашняя страница
Примечание: Автор не удосужился объяснить куда ведет кнопка Домашняя страница. А ведет она на ту которая прописана в свойствах твоего Internet Explorer в качестве домашней. Мелочь, но зато ты понял на 100%.
Исходный код и скомпилированный вариант получившегося ищи тут.
Теперь заменим компонент Edit на выпадающий список ComboBox, и будем записывать в него недавно открытые адреса.
Имеем:
Рисунок 3.
Добавляем совсем немного строчек в обработчик события onKeyDown, элемента ComboBox:
if(Key==VK_RETURN)
{
CppWebBrowser1->Navigate(StringToOleStr(ComboBox1->Text)); //Загружаем страницы
ComboBox1->Items->Add(ComboBox1->Text); //Добавляем использованные адреса
}
Исходный код и скомпилированный вариант получившегося ищи тут.
Считай это вступлением. Мы просто не хотим перегружать твой мозг информацией. Наращивать на скелет можно очень и очень много, поэтому чтоб не терять нить рассуждений мы разделим наш материал на несколько частей.
Для себя мы уже нарисовали план развития этой задумки. Разумеется мы не планируем соревноватся с популярными веб-браузерами, нам просто интересно как это все устроено, пускай даже не на самописном ядре, а уже на готовом.
А если говорить серьезно - просто хочется спать;)
Ссылки:
К содержанию