menu

darmowe eBooki

Programuję w Delphi i C++ Builder - cz.2

okładka

Jak szybko nauczyć się programowania w dwóch różnych językach?

Sprawdź sam, czytając darmowy fragment eBooka Programuję w Delphi i C++ Builder - cz.2.

Czy ta wiedza okazała się dla Ciebie przydatna? Chcesz wiedzieć więcej? Zobacz tutaj.

Google Adsense

migawka z forum

Dowcipy o programistach/informatykach

Witam, grunt to potrafić śmiać sie z samego siebie  ;DPrzychodzi informatyk do domu po pra...

Rysiek z "Klanu"

W związku z ogromnym poruszeniem we wszystkich mediach w naszym kraju, dotyczącym tak kultowej postaci jak Rysiek z &quo...

Propozycje zmian w serwisie Guide C++

Witam, ze względu na to że nie znalazłem podobnego tematu na forum, a mam kilka sugestii   ;) postanowiłem je ...

buttony

SDJ
vortal programistów
Vademecum sieci komputerowych
Soldiers'04 - fan klub Legii Warszawa
www.katalog.bajery.pl
katalog stron
katalog najlepszych stron
jestem w katalogu
Wszystko o C++
[zamknij]

Korzystamy z plików cookies i umożliwiamy zamieszczanie ich osobom trzecim. Pliki cookie pozwalają na poznanie twoich preferencji na podstawie zachowań w serwisie.
Uznajemy, że jeżeli kontynuujesz korzystanie z serwisu, wyrażasz na to zgodę.

jesteś w: Kurs WinAPI / Wprowadzenie do WinAPI
Szkoła Hakerów - Kurs Hackingu Bez Cenzury

Wprowadzenie do WinAPI

To już nie przelewki! Programowanie pod Windows'em to ciężka harówa!! Muszę się przyznać, że gdy pierwszy raz ujrzałem kod programu okienkowego - zwątpiłem. Pomyślałem, że to jest tak zawiłe, że normalny człowiek nie jest w stanie tego zrozumieć. Naszczęście tylko z początku :) Zacząłem powoli analizować kod i po niedługim czasie załapałem. Z Tobą pewnie też tak będzie ;-) Jak już zrozumiesz podstawy to napisanie programu nie będzie stanowiło większego problemu. Tak więc nie przejmuj się tym ciutkę odstraszającym wstępem i czytaj dalej ;-)

Jak zapewne pamiętasz z kursu C++, głównym elementem programu jest funkcja main. W programach pisanych pod Windows'a jest podobnie. Również jest tutaj funkcja główna. Nawet nazwa jest podobna. Zamiast main jest WinMain. Jednak to chyba jedyne podobieństwo :( Myślę, że każdy, kto czyta ten text doskonale zdaje sobie sprawę, że Windows w odróżnieniu od DOS-a jest systemem wielozadaniowym. Oznacza to, że jednocześnie może być uruchomionych wiele programów i wszystkie one będą funkcjonować. Pod DOS-em możnabyło uruchomić jednocześnie tylko jeden program, co było bardzo uciążliwe. Wraz z pojawieniem się Windows'ów komputer zaczął być bardziej 'przyjazny' dla człowieka. Ładnie wyglądające okienka, przyciski, rozwijane menu, listy oraz inne nowinki wprowadzone do Windows'a sprawiły, że programy zaczęły wyglądać bardzo efektownie. Tylko po co ja o tym wszystkim mówię? No właśnie.. Mówię o tym ponieważ rewolucja jaką niewątpliwie było pojawienie się Windows'ów począwszy od wersji 95 zmieniła radykalnie sposób tworzenia i działania programów. Teraz wiele pracy wykonuje za nas system. Nie jesteśmy już zdani jedynie na siebie, jak to było w starym, dobrym DOS-ie [ah ten sentyment ;-) ]. Tę wygodę zawdzięczamy oczywiście sługusom zacnego i poczciwego Billa Gates'a :D Ci panowie postarali się i stworzyli coś, co nazwano WinAPI. Nazwa dość tajemnicza jak wszystko co tyczy się Microsoftu ;-) Tylko co to tak naprawdę oznacza? API to akronim od słów: Application Programming Interface. Mówiąc po ludzku [czyli po polsku] znaczy to tyle, co: interfejs programowania aplikacji lub po prostu: interfejs aplikacji. Ja jednak nie lubię stosować standardów i wolę robić wszystko po swojemu, więc trochę przekręcam spolszczenie. Bardziej podoba mi się tłumaczenie: programowalny interfejs aplikacji. To taka mała dygresja. Niezależnie od tłumaczenia zasadnicze pytanie brzmi: czym tak naprawdę jest owo API? Najprościej mówiąc jest to zestaw setek funkcji, struktur i różnych dziwnych rzeczy :p ułatwiających i przyspieszających pisanie programów windows'owych. O kurde! I ja mam te wszystkie funkcje opanować? :o Już uspokajam. Wcale nie trzeba znać wszystkich elementów API, aby biegle się nim posługiwać. Tak naprawdę do stworzenia eleganckiego interfejsu okienkowego wystarczy zapoznać się z kilkunastoma funkcjami oraz makrami i umiejętnie z nich skorzystać. Te kilkaset pozostałych funkcji to już tylko dodatek ;-) API jest doskonałym [choć mógłby być jeszcze doskonalszym] narzędziem do pisania w pełni 32-bitowych aplikacji. Rozsądne korzystanie z jego dobrodziejstw to potężny oręż w rękach programisty. Od teraz programista nie musi się martwić o obsługę myszy, klawiatury, cd-rom'u, czy innych peryferiów. Bowiem goście z Microsoftu byli tak uczynni, że napisali dla nas rozmaite funkcje do realizacji tych i wielu innych zadań. Zadanie kodera jest teraz znacznie uproszczone, a praca jeszcze przyjemniejsza. Polega ona przede wszystkim na odczytywaniu komunikatów i odpowiednim reagowaniu na nie. Komunikat to po prostu jakieś zdarzenia, jak kliknięcie myszą, wciśnięcie klawisza, aktywacja menu, zmiana położenia czy rozmiaru okna itp. itd. Słowem wszystko, co w pewien sposób może wpłynąć na działanie programu. Cały kod odpowiedzialny za obsługę komunikatów jest umieszczany w specjalnej funkcji. W żargonie fachowców ta funkcja nosi nazwę procedury obsługi okna. Wszystko to odbywa się za pośrednictwem kilku funkcji, które poznasz niebawem.

Windows, jak i wiele aplikacji pisanych pod ten system funkcjonuje w oparciu o pewną hierarchię. Zawsze istnieje jakiś obiekt główny [nadrzędny], do którego należą inne obiekty [podrzędne]. Warto tutaj wspomnieć, że obiekt główny, czyli nadrzędny bywa też nazywany rodzicem. Obiekty pochodne, będące podrzędnymi to obiekty dzieci lub zwyczajnie kontrolki. Rodzic jest niejako właścicielem swych dzieci. To prawie tak, jak w życiu ;-) Popatrz choćby na program Paint instalowany standardowo z systemem. Po załadowaniu tego wypaśnego programu ;-) naszym oczom ukazuje się jedno okno, paski narzędzi oraz menu. Wspomniane okno to właśnie obiekt główny, natomiast wszystko, co znajduje się w tym oknie to obiekty pochodne, czyli dzieci, czy też kontrolki [wedle uznania]. Idąc dalej tym tropem nie trudno zauważyć, iż niemal każda aplikacja jest zbudowana w taki właśnie sposób. Budowanie programów w taki 'schematyczny' sposób ma jedną bardzo ważną zaletę. Zwalnia użytkownika z obowiązku opanowywania coraz to nowych interfejsów. Dzięki temu programy stają się bardziej uniwersalne i łatwiejsze w obsłudze. A przecież właśnie o to nam chodzi :) Niektórzy pewnie tutaj zaprotestują twierdząc, że taki 'oklepany' interfejs szybko się znudzi. Fakt, ale czy nie jest przyjemnie, gdy odpalasz nowy program i niemal na wstępie wiesz jak się nim posługiwać? Łatwość obsługi wzięła górę nad wyglądem. Tyle teorii powinno wystarczyć. W zasadzie możemy już przejść do strony praktycznej zagadnienia. Jednak zanim to zrobimy muszę nadmienić, iż na tym etapie znajomość C++ jest niezbędna! Zatem jeśli nie znasz tego języka to.. nie, nie kończ lektury tylko przeczytaj kursik C++ Oke. Już wszystko wiemy, więc możemy rozpocząć zabawę :)