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

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

  1. И так, начнём:

    Кликаем на 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 браузер сможет переходить на заданную страницу. Чтобы страница загружалась быстрее такие строки как

    Листинг :
    Описание private: System::Void textBox1_KeyDown(System::Object^ sender, System::Windows::Forms::KeyEventArgs^ e) { if ( e->KeyCode == Keys::Enter) { this->webBrowser1->Navigate(this->textBox1->Text);

    }

    } private: System::Void webBrowser1_DocumentCompleted(System::Object^ sender, System::Windows::Forms::WebBrowserDocumentCompletedEventArgs^ e) { this->textBox1->Text = webBrowser1->Url->ToString();

    }
    Нажмите, чтобы раскрыть...​
    Лучше поместить в начало выполнение программы, а именно после "#pragma endregion". При переносе строк, будьте осторожны: не забывайте скобки, и не переносите лишние.
    Предлагаю услуги по:
    1. Сделаю зеркало любого сайта в сети ТОR
    2. Блокировка ЛЮБОГО QIWI Номера (Быстро)


    [​IMG]
    Мануалы и софт выложены в ознакомительных целях вся ответственность за использования ложится на вас.
    Софт советую использовать на виртуалке.
     

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