Пишем браузер на С++

Тема в разделе "Софт и инструменты", создана пользователем CLAY, 17 апр 2017.

  1. CLAY

    CLAY Member

    Сообщения:
    419
    Симпатии:
    5
    И так, начнём:

    Кликаем на WebBrowser и в его свойствах находим Anchor: и выбираем стороны прикрепления как на картинке:

    Теперь закрываем Anchor и компилируем наш браузер. Заходим на любой веб-сайт. Попытайтесь растянуть окно браузера - видим, что и элемент WebBrawser и его содержимое тоже растянулось!

    То же самое нужно делать и с кнопками только их нужно закреплять вверху и справа(или слева), а вот адресную строку закрепляйте сверху, слева и справа, чтобы при растягивании формы, адресная строка тоже увеличивалась!

    Кнопки легко можно заменить другим, более красивым элементом - PictureBox. Для того чтобы вставить картинку в свойствах PictureBox есть Image нажимаем на него и выбираем картинку с компьютера. Чтобы она растягивалась при увеличении картинки, ставим в свойстве SizeMode StretchImage.

    Для того чтобы картинки, которые мы вставили в PictureBox, функционировали как кнопки, нужно присвоить им те же коды для события(клика по ним) как и у кнопок. Напомню что это:

    Листинг : кнопка Назад this->webBrowser1->GoBack();

    Листинг : кнопка Вперед this->webBrowser1->GoForward();

    Листинг : кнопка Обновить this->webBrowser1->Refresh();

    Листинг : кнопкаПерейти this->webBrowser1->Navigate(this->textBox1->Text);

    Также мы можем поменять иконку формы: в свойствах форму ищем Icon - и добавляем .ico файл

    . А чтобы изменить иконку готового .exe файла, заменяем файл app.ico в директории: Папка в кот. хранится ваш проект"название проекта" у меня это: ...Веб БраузерВеб Браузер.

    С оформительской частью мы закончили. Переходим к коду. Если вы уже потыкали(изучили) браузер, то наверняка заметили, что вводя текст в адресную строку и нажимая Enter, ничего не происходит. Почему же так? Давайте разберёмся и попытаемся это исправить: При переходе на веб-страницу мы нажимает кнопку и выполняется такой код: this->webBrowser1->Navigate(this->textBox1->Text);. Значит, чтобы при нажатии Enter происходило то же самое, нужно присвоить нажатию Enter в TextBox этот же код. И так выделяем TextBox, во вкладке Свойства есть значок - молния, нажимаем на него и вот мы видим События этого элемента. Находим там KeyDown и пишем имя этому событию(при нажатии Enter будет выставлено стандартное имя: textBox1_KeyDown). Далее мы переходим к коду и набираем там такие строки:

    Листинг :
    Описание if ( e->KeyCode == Keys::Enter) { this->webBrowser1->Navigate(this->textBox1->Text);

    }
    Нажмите, чтобы раскрыть...
    Готово. Теперь при нажатии Enter в TextBox браузер сможет переходить на заданную страницу. Чтобы страница загружалась быстрее такие строки как

    Листинг :
    Лучше поместить в начало выполнение программы, а именно после #pragma endregion. При переносе строк, будьте осторожны: не забывайте скобки, и не переносите лишние.

Поделиться этой страницей