Регистрация Главная Сообщество
Сообщения за день Справка Регистрация

Ответ
 
Опции темы
Старый 28.01.2011, 23:55   #1
 Сержант
Аватар для reraider
 
reraider блестящий пример для подражанияreraider блестящий пример для подражанияreraider блестящий пример для подражанияreraider блестящий пример для подражанияreraider блестящий пример для подражанияreraider блестящий пример для подражанияreraider блестящий пример для подражанияreraider блестящий пример для подражанияreraider блестящий пример для подражанияreraider блестящий пример для подражанияreraider блестящий пример для подражания
Регистрация: 04.09.2009
Сообщений: 130
Популярность: 1758
Сказал(а) спасибо: 652
Поблагодарили 324 раз(а) в 128 сообщениях
 
По умолчанию Пишем браузер на С++

Современные языки программирования предоставляют программистам огромный спектр возможностей, превращая разработку программного обеспечения в приятный творческий процесс. В данной статье описан процесс создания собственного браузера на языке Visual C++ на базе движка Internet Explorer. Как вы можете убедиться, это совсем не сложно.

Запускаем VC++ и создаём новый проект Windows Form Application с именем AV-School WebBrowser
Создался проект, перед нами форма растянем её примерно вот так
[Ссылки могут видеть только зарегистрированные пользователи. ]
Теперь меняем имя у окна на уже известное AV-School WebBrowser, для этого нажимаем Alt+Enter, справа всплыло окно "Свойства" ищем строку Text и меняем значение на AV-School WebBrowser.

Далее нужно создать какой-то элемент, который будет отображать интернет страницу. Тут Microsoft очень облегчило нашу задачу тем что сделало элемент WebBrowser что-бы его добавить открываем панель элементов (вкладка находится справа от нашей формы), там находим элемент WebBrowser
[Ссылки могут видеть только зарегистрированные пользователи. ]
Добавляем его в наш форму. Заметили что он растянулся на всё её пространство? Этого нам не надо так как должно остаться место для "Браузерной строки" и кнопок "Перейти" "Обновить" "Вперёд" "Назад".
Что-бы сделать элемент меньше найдём в правом верхнем углу элемента значок похожий на Play
[Ссылки могут видеть только зарегистрированные пользователи. ]
Нажимаем на него и выбираем Открепить в родительском контейнере, ну теперь можем выбрать размер этого элемента, оставляем немного места вверху формы дабы разместить там вышепривиденные элементы.

Самое главное в любом браузере - это Браузерная строка, приступим к её созданию. В уже известной нам панеле элементов найдём элемент TextBox и вставим его в место оставленное нами вверху формы. Ок, чудо строчка готова.

Теперь кнопки. Начнём с тыкалки Перейти. По традиции идём в панель элементов и ищем там Button, добавляем кнопочку рядом с TextBox и переименовываем из Button1 в Перейти (имя меняется так-же как и у формы через панель свойств). Ну а теперь надо заставить кнопку действовать, для этого кликаем на нашу кнопку 2 раза, тут то и начинается код... Как вы поняли мы попали в событие Click, и именно здесь мы должны описать что будет происходить при нажатии на нашу кнопку
Листинг : Описание
Код:
private: System::Void button1_Click(System::Object^  sender, System::EventArgs^  e) { this->webBrowser1->Navigate(this->textBox1->Text) ;
 }
//Народ не надо копировать всё нам здесь интересно только это: this->webBrowser1->Navigate(this->textBox1->Text) ;
//а остальное это событие которое в вашем коде уже присутствует, у вас в нём стоит курсор.
И так разберём что делает эта срочка.
this->webBrowser1->Navigate сообщает элементу webBrowser1 на какую страницу в интернете переходить, а так как у нас написано Navigate(this->textBox1->Text), значит загрузится та страница которую мы написали в текст боксе.
Впринципе самый приметивный браузер готов. Но мы продолжим дорабатывать прогу.
Создаём следущую кнопку Обновить, ставим рядом с кнопкой перейти, меняем имя на Обновить.
Кликаем на кнопочку 2 раза и попадаем в уже известное событие Сlick
Листинг : Описание
Код:
private: System::Void button2_Click(System::Object^  sender, System::EventArgs^  e) { this->webBrowser1->Refresh();
                         }
Смотрим this->webBrowser1->Refresh(); заставляет webBrowser1 обновить страницу.
Далее кнопка Вперёд, создаём кнопку меняем имя на Вперёд, переходим в событие Click
Листинг : Описание
Код:
private: System::Void button3_Click(System::Object^  sender, System::EventArgs^  e) {
this->webBrowser1->GoBack();
                 }
И наконец Вперёд
Листинг : Описание
Код:
private: System::Void button2_Click(System::Object^  sender, System::EventArgs^  e) {
this->webBrowser1->GoForward();
                }
Всё, с кнопками закончили. Идём дальше.

Теперь осталась только "оформительская часть". Наша браузерная строка не доработана. Допустим введём в неё av-school.ru, пока всё ок, но давайте перейдём в микро. Что написано в строке?? До сих пор написано av-school.ru, потому что мы не просим наш браузер менять строку в текст боксе на адрес в который мы переходим по ссылке. Сейчас мы это исправим. В событиях webBrowser1 есть такое событие DocumentCompleted которое возникает при полной загрузке веб-документа. Вот ему-то мы и присвоим менять TextBox на адрес страницы на которой мы находимся. Переходим в выше указанное событие.
Листинг : Описание
Цитата:
private: System::Void webBrowser1_DocumentCompleted(System::Object^ sender, System::Windows::Forms::WebBrowserDocumentCompletedEventArgs^ e) {this->textBox1->Text = webBrowser1->Url->ToString();
}

Всё теперь ок.
Вот что у нас получилось
[Ссылки могут видеть только зарегистрированные пользователи. ]
З.Ы. Получилось выложить только кусок

Продолжим наводить красоту в следующем блоге.


Copyright RoMpam
________________
Палки палки палочки
  Ответить с цитированием
2 пользователя(ей) сказали cпасибо:
CreatiK (29.01.2011), Конфуций (11.05.2011)
Старый 29.01.2011, 03:30   #2
 Рыцарь-капитан
Аватар для CreatiK
 
CreatiK определенно авторитетная личностьCreatiK определенно авторитетная личностьCreatiK определенно авторитетная личностьCreatiK определенно авторитетная личностьCreatiK определенно авторитетная личностьCreatiK определенно авторитетная личностьCreatiK определенно авторитетная личностьCreatiK определенно авторитетная личностьCreatiK определенно авторитетная личность
Регистрация: 18.11.2010
Сообщений: 517
Популярность: 1117
Сказал(а) спасибо: 39
Поблагодарили 306 раз(а) в 114 сообщениях
Отправить сообщение для CreatiK с помощью ICQ Отправить сообщение для CreatiK с помощью Skype™
 
По умолчанию Re: Пишем браузер на С++

Выложи полностью пример кода свой
  Ответить с цитированием
Пользователь сказал cпасибо:
reraider (29.01.2011)
Старый 29.01.2011, 03:57   #3
 Сержант
Аватар для reraider
 
reraider блестящий пример для подражанияreraider блестящий пример для подражанияreraider блестящий пример для подражанияreraider блестящий пример для подражанияreraider блестящий пример для подражанияreraider блестящий пример для подражанияreraider блестящий пример для подражанияreraider блестящий пример для подражанияreraider блестящий пример для подражанияreraider блестящий пример для подражанияreraider блестящий пример для подражания
Регистрация: 04.09.2009
Сообщений: 130
Популярность: 1758
Сказал(а) спасибо: 652
Поблагодарили 324 раз(а) в 128 сообщениях
 
По умолчанию Re: Пишем браузер на С++

Добавлю два вида исходников , разберётесь сами ...
Один из них просто отличается дизайном а так они одинаковы.
Вложения
Тип файла: rar №1.rar (689.5 Кб, 157 просмотров)
Тип файла: rar №2.rar (776.1 Кб, 74 просмотров)
________________
Палки палки палочки
  Ответить с цитированием
Старый 29.01.2011, 14:42   #4
 Старший сержант
Аватар для .AsTex.
 
.AsTex. блестящий пример для подражания.AsTex. блестящий пример для подражания.AsTex. блестящий пример для подражания.AsTex. блестящий пример для подражания.AsTex. блестящий пример для подражания.AsTex. блестящий пример для подражания.AsTex. блестящий пример для подражания.AsTex. блестящий пример для подражания.AsTex. блестящий пример для подражания.AsTex. блестящий пример для подражания.AsTex. блестящий пример для подражания
Регистрация: 17.04.2010
Сообщений: 200
Популярность: 1972
Сказал(а) спасибо: 95
Поблагодарили 271 раз(а) в 105 сообщениях
 
По умолчанию Re: Пишем браузер на С++

Дважды идет кнопка вперед)
И не описано где кнопка назад))Почитай там идет теперь кнопка вперед и код для кнопки назад
А потом: И наконец-то кнопка вперед.
И тепрь код кнопки вперед
________________
[Ссылки могут видеть только зарегистрированные пользователи. ]
  Ответить с цитированием
Ответ

Метки
c++ браузер, reraider


Ваши права в разделе
Вы не можете создавать новые темы
Вы не можете отвечать в темах
Вы не можете прикреплять вложения
Вы не можете редактировать свои сообщения

BB коды Вкл.
Смайлы Вкл.
[IMG] код Вкл.
HTML код Выкл.

Быстрый переход

Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
UCWEB 7.0.0.41 Браузер AsPin Программы и приложения для смартфонов 0 10.05.2010 20:48
[Обсуждение] Лучший браузер для читера? v 0.1 object Треп 16 22.04.2010 16:32
[Помогите!] Браузер с поддержкой флэш игр Gendolf Свободное обсуждение 4 16.04.2010 15:29

Заявление об ответственности / Список мошенников

Часовой пояс GMT +4, время: 22:03.

Пишите нам: [email protected]
Copyright © 2024 vBulletin Solutions, Inc.
Translate: zCarot. Webdesign by DevArt (Fox)
G-gaMe! Team production | Since 2008
Hosted by GShost.net