16.05.2015 Views

Programowanie w C++ Borland Builder - Wyższa Szkoła Informatyki ...

Programowanie w C++ Borland Builder - Wyższa Szkoła Informatyki ...

Programowanie w C++ Borland Builder - Wyższa Szkoła Informatyki ...

SHOW MORE
SHOW LESS

You also want an ePaper? Increase the reach of your titles

YUMPU automatically turns print PDFs into web optimized ePapers that Google loves.

wpisujemy zero, ponieważ program nie posiada w tym stadium<br />

wcześniejszego okna macieżystego.<br />

Pozostało nam jeszcze dodać funkcję WinMain() i pierwszy program<br />

obiektowy w wersji "Maszyna do robienia nic" jest gotów.<br />

Listing . Obiektowa "Maszyna do robienia nic"<br />

________________________________________________________________<br />

#define STRICT<br />

#define WIN31<br />

#include <br />

class TOkno : public TApplication<br />

{<br />

public:<br />

TOkno(LPSTR AName, HANDLE hInstance, HANDLE hPrevInstance,<br />

LPSTR lpCmdLine, int nCmdShow)<br />

: TApplication(AName, hInstance, hPrevInstance, lpCmdLine,<br />

nCmdShow) {};<br />

void InitMainWindow(){MainWindow = new TWindow(NULL, Name);};<br />

};<br />

int PASCAL WinMain(HANDLE hInstance, HANDLE hPrevInstance,<br />

LPSTR lpCmdLine, int nCmdShow)<br />

{<br />

TOkno OBIEKT("Windows - Program PW1", hInstance,<br />

hPrevInstance, lpCmdLine, nCmdShow);<br />

OBIEKT.Run();<br />

return 0;<br />

}<br />

________________________________________________________________<br />

Wykonanie takiej aplikacji przebiega następująco. Windows<br />

wywołują główną funkcję WinMain(), która przekazuje swoje<br />

parametry do konstruktora klasy TOkno::TOkno(). Konstruktor<br />

przekazuje parametry do konstruktora klasy bazowej<br />

TApplication(). Po skonstruowaniu obiektu w pamięci funkcja<br />

wywołuje odziedziczoną metodę Run(). Funkcja Run() wywołuje<br />

metody InitApplication() (zainicjuj aplikację) i InitInstance()<br />

(zainicjuj dane wystąpienie programu). Metoda InitInstance()<br />

wywołuje funkcję InitMainWindow(), która buduje główne okno<br />

aplikacji na ekranie. Po pojawieniu się okna rozpoczyna<br />

działanie pętla pobierania komunikatów (message loop). Pętla<br />

komunikatów działa aż do otrzymania komunikatu WM_QUIT.<br />

Rozbudujmy aplikację o okienko komunikatów. Zastosujemy do tego<br />

funkcję MessageBox(). Funkcja zostanie użyta nie jako metoda<br />

(składnik obiektu), lecz jako "wolny strzelec" (stand alone<br />

function).<br />

Listing B. Maszyna rozszerzona o okienka komunikatów.<br />

________________________________________________________________<br />

#define WIN31<br />

#define STRICT<br />

- 429-

Hooray! Your file is uploaded and ready to be published.

Saved successfully!

Ooh no, something went wrong!