Artykuł Prosta przeglądarka w Visual C++

Prosta przeglądarka w Visual C++
Autor: MarekM25 Dodano: 2009-05-28 16:02:49 Komentarze: 0
Licencja: CC-BY Kategoria: Programowanie » .NET Odsłon: 1418

Prosta przeglądarka w Visual C++

Wstęp

Do rozpoczęcia budowy własnej przeglądarki potrzebne będzie:

Microsoft Visual C++ (najlepiej w wersji 2008)

-koniecznie działająca przeglądarka Internet Explorer

-bardzo minimalna wiedza o programowaniu i środowisku Visual C++ (choć sądzę, źe kaźdy byłby w stanie wykonać przeglądarkę dzięki pokazanemu tu opisowi)

Artykuł ten pokazuje jak zrobić szybko przeglądarkę w Microsoft Visual C++ 2008. Zrobienie przeglądarki w kilka minut pokazuje wielkie moźliwości języka C++. Przy tworzeniu tej prostej przeglądarki moźesz dowiedzieć się czegoś dodatkowego o Visual C++. Dla niektórych artykuł moźe się wydawać zbyt zawiły, ale chodzi tu by kaźdy zrozumiał jak zrobić przeglądarkę.

Uwaga!!! Program został wykonany w Microsoft Visual C++ 2008, lecz w starszych wersjach teź powinno działać.

Nie spodziewaj tu się czegoś podobnego do Firefoxa, Opery czy Internet Explorera. Przeglądarka będzie się opierała na silniku IE. Na początku została opisana krok po kroku budowa prostej przeglądarki, a potem stopniowe ulepszanie jej by na samym końcu stworzyć

całkiem przyzwoitą aplikację.

Przykładowa przeglądarka w Microsoft Visual C++

1. Uruchom Microsoft Visual C++ 2008.

2. Z menu File -> New -> Project .

3. Zaznacz Windows Forms Application.

4. W polu Name wpisz nazwę programu. Resztę pól pozostaw bez zmian. Zmieniamy takźe nazwę głównego okna programu poprzez zaznaczenie formy i wybraniu View->Other Windows->Properties window->Text i tam wpisaniu nazwy głównego okna.

5. Z menu View wybierz Toolbox i znajdż kontrolkę WebBrowser zlokalizowana w kategorii Common Controls. Przenieś ja na główne okno programu. Dodaj takźe przycisk Button (ustaw nazwę przycisku poprzez View->Other Windows->Properties Window->Text i wpisz nazwę przycisku „Wyświetl”) oraz pole tekstowe textBox. Całość rozmieść mniej więcej tak jak na obrazku.



6. Kliknij dwukrotnie na obiekt typu Button przechodząc w ten sposób do programowania domyślnej metody zdarzeniowej dla Button, czyli kliknięciu w ten przycisk.

7. Ujrzysz:


Kod
  1. private: System::Void button1_Click(System::Object^ sender, System::EventArgs^ e) {
  2.  
  3. }


Pomiędzy nawiasami klamrowymi wpisz kod, aby wszystko wyglądało tak:


Kod
  1. private: System::Void button1_Click(System::Object^ sender, System::EventArgs^ e)
  2.  
  3. {
  4.  
  5. Uri^ adres=gcnew Uri(textBox1->Text);
  6.  
  7. webBrowser1->Url=adres;
  8.  
  9. }


8.Naciśnij przycisk kompilacji F7, a potem F5 i ciesz się ze swojej własnej przeglądarki. W polu tekstowym wpisz adres strony (koniecznie z protokołem http://) i kliknij w Button. Jeśli przeglądarka nie działa sprawdż czy wykonałeś poprawnie kroki opisane w tym artykule oraz czy przeglądarka Internet Explorer działa poprawnie. Nie poprzestawaj na tak zbudowanej przeglądarce. Rozwijaj ją o własne pomysły, a w przyszłości moźe będzie rywalem czołowych przeglądarek.

Dodaj podstawowe opcję

Oczywiście Twoja przeglądarka juź działa, ale co z tego jak nie ma w niej nawet tak podstawowych opcji jak przenoszenie do strony domowej, przechodzenie do następnej i poprzedniej strony, zatrzymywanie, odświeźanie strony. W bardzo prosty sposób moźesz dodać do przeglądarki tę opcję. Umieść na głównym oknie przeglądarki pięć dodatkowych przycisków typu Button. Rozmieść komponenty by całość wyglądała mniej więcej tak jak na poniźszym obrazku. Ustaw indywidualnie nazwę kaźdego przycisku poprzez View->Other

Windows->Properties Window->Text i wpisz nazwę przycisku i tak z kaźdym kolejnym.



Wstecz

Teraz kliknij dwa razy w Button Wstecz. Przenosisz się w ten sposób do domyślnej metody zdarzeniowej przycisku (czyli kliknięcia w ten przycisk). Uzupełnij kod tak by całość wyglądała tak:
Kod
  1.  
  2.  
  3. private: System::Void button2_Click(System::Object^ sender, System::EventArgs^ e)
  4.  
  5. {
  6.  
  7. webBrowser1->GoBack();
  8.  
  9. }


Naprzód

Kliknij dwa razy w Button Naprzód. Uzupełnij kod tak by całość wyglądała tak:


Kod
  1. private: System::Void button3_Click(System::Object^ sender, System::EventArgs^ e)
  2.  
  3. {
  4.  
  5. webBrowser1->GoForward();
  6.  
  7. }


Stop

Kliknij dwa razy w Button Stop. Uzupełnij kod tak by całość wyglądała tak:


Kod
  1. private: System::Void button4_Click(System::Object^ sender, System::EventArgs^ e)
  2.  
  3. {
  4.  
  5. webBrowser1->Stop();
  6.  
  7. }


Strona domowa

Kliknij dwa razy w Button Home. Ta funkcja będzie przenosić do strony domowej (takiej jak ustawiona w IE). Uzupełnij kod tak by całość wyglądała tak:


Kod
  1. private: System::Void button5_Click(System::Object^ sender, System::EventArgs^ e)
  2.  
  3. {
  4.  
  5. webBrowser1->GoHome();
  6.  
  7. }


Wyszukiwarka

Kliknij dwa razy w Button Wyszukiwarka. Ta funkcja będzie przenosić do ustawionej w IE domyślnej wyszukiwarki. Uzupełnij kod tak by całość wyglądała tak:
Kod
  1.  
  2.  
  3. private: System::Void button6_Click(System::Object^ sender, System::EventArgs^ e)
  4.  
  5. {
  6.  
  7. webBrowser1->GoSearch();
  8.  
  9. }


Odświeźanie

Kliknij dwa razy w Button Odświeźanie. Uzupełnij kod tak by całość wyglądała tak:


Kod
  1. private: System::Void button7_Click(System::Object^ sender, System::EventArgs^ e)
  2.  
  3. {
  4.  
  5. webBrowser1->Refresh();
  6.  
  7. }


Wady przeglądarki

Nie rozszerzalność przeglądarki

Bardzo szybko moźna zauwaźyć pierwsze wady przeglądarki. Wyświetla strony dobrze, ale zobaczmy co się dzieje po rozszerzeniu okna (patrz obrazek).



Oczywiście tą wadę moźna w prosty sposób naprawić.Otwórz View->Other Windows->Properties window. Następnie znajdż właściwość Anchor i ustaw w niej wszystkie moźliwości. Wada została naprawiona.

Zatwierdzanie Enter'em

Niestety przeglądarka nie reaguje na razie na przycisk enter. Po wpisaniu adresu musimy potwierdzać przyciskiem Wyświetl. Oczywiście jest prosty sposób na rozwiązanie tego problemu. Kliknij raz na pole tekstowe(tam gdzie wpisywany jest adres strony). Otwórz View->Other Windows->Properties window i kliknij w ikonkę pioruna. Następnie znajdż zdarzenie KeyPress i uzupełnij kod tak by wyglądał jak poniźej:


Kod
  1. private: System::Void textBox1_KeyPress(System::Object^ sender,
  2.  
  3. System::Windows::Forms::KeyPressEventArgs^ e)
  4.  
  5. {
  6.  
  7. if (e->KeyChar == (char)13)
  8.  
  9. {
  10.  
  11. System::String^adres = textBox1->Text;
  12.  
  13. webBrowser1->Navigate(adres);
  14.  
  15. }
  16.  
  17. }


Teraz juź moźesz zatwierdzać szukanie strony za pomocą klawisza Enter. Moźna więc usunąć kontrolkę Wyświetl, a w to miejsce moźesz ustawić właściwość Anchor pola tekstowego na wszystkie strony.

Automatyczne dopisywanie protokołu

Gdy przeglądarka nie zawiera funkcji automatycznego dopisywania protokołu musisz wstawiać za kaźdym razem "http://". Jest to dość uciąźliwie. By naprawić tą wadę naleźy dopisać do metody zdarzeniowej keyPress pola tekstowego krótki kod:


Kod
  1. if(!textBox1->Text->StartsWith("http://"))
  2.  
  3. {
  4.  
  5. textBox1->Text = "http://"+textBox1->Text;
  6.  
  7. }


Przycisk e-pomocnik.pl

Na koniec zrobisz jeszcze odwołanie do konkretnej strony. W tym wypadku do e-pomocnik.pl. Umieść na formie nowy przycisk. Następnie wejdż na http://e-pomocnik.pl/favicon.ico

Otwórz ikonkę za pomocą jakiegoś programu graficznego zapisz jako bmp. Otwórz okno View->Other Windows->Properties Window odnajdż właściwość images. Następnie zlokalizuj

ikonkę, zaznacz i kliknij OK. Tym sposobem moźesz dodać ikonki do pozostałych opcji. Teraz zostaje oprogramować przycisk


Kod
  1. private: System::Void button8_Click(System::Object^ sender, System::EventArgs^ e)
  2.  
  3. {
  4.  
  5. webBrowser1->Navigate("http://e-pomocnik.pl");
  6.  
  7. }


W taki sam sposób moźna uzyskać dostęp do innych stron np. googli. Poniźej widnieje obrazek z efektem końcowym(obrazek jest pomniejszony, dlatego jest trochę rozmazany).



Specjalnie dla e-pomocnik.pl : MarekM25

Zobacz więcej

Instalacja aplikacji... Chcąc zainstalować aplikacje z rozszerzeniem .msi moźemy zobaczyć błąd. Istni... 2009-05-15 14:45:23
Płonący napis Tutorial stworzony pod GIMP-a 2.2.13 (myślę, źe na innych wersjach teź nie będzi... 2008-10-10 22:14:36
Chowanie plików do .... 1.Tworzymy folder o nazwie np. hide najlepiej na dysku C. 2. Kopiujemy tam jak... 2009-06-14 11:23:53
Jak wysłać maila z k... Na początek krótko o SMTP. Protokół ten powstał przed POP3, umoźli... 2009-04-16 22:49:51
Łączenie z bazą dany... Łączenie z bazą danych jest dziecinnie proste. Do napisania skryptu potrzeba g&o... 2010-02-12 16:02:52
Zmiana koloru samoch... Witam! Dziś zajmiemy się zmianą koloru samochodu. Tutorial jest bardzo pro... 2009-06-23 20:58:17

Komentarze

Zaloguj się, aby móc dodawać komentarze.


E-pomocnik



Najnowsze Artykuły  


Jak sprawdzić bezpie...2010-08-25

Chciałbym przedstawić w pełni bezpieczny sposób na sprawdzenie poprawne

czytaj całość
Instalacja Windows X...2010-08-21

Jeżeli znajdujesz się w sytuacji, w której nie możesz zainstalować Windowsa z pł

czytaj całość
Jak zainstalować Win...2010-08-20

Czasami jesteśmy zmuszeni do zainstalowania naszego systemu na nowo. Jeżeli posi

czytaj całość
Jak usunąć zablokowa...2010-07-10

Czasami zdarza się, że plik, który chcemy usunąć używany jest przez jakiś

czytaj całość


Statystyki


Użtkowników: 149

Artykuły: 145

Ostatnio zarejestrowany: Dawid

Użytkowników online: 2


Reklama




Strona główna | Rejestracja | Forum | Użytkownicy | Artykuły | Kontakt

Pobierowo :: Wymienniki ciepła

Copyright © 2010 e-pomocnik.pl