Treść książki

Przejdź do opcji czytnikaPrzejdź do nawigacjiPrzejdź do informacjiPrzejdź do stopki
J.Matulewski,T.Dziubak,M.Sylwestrzak,R.Płoszajczak,Grafika.Fizyka.Metodynumeryczne.
Symulacjefizycznezwizualizacj
ą
3D,Warszawa2010
ISBN978-83-01-16178-1,©byWNPWN2010
20
CzęśćI.GrafikatrójwymiarowawOpenGL
Listing1.2.FunkcjaWinMainbramaaplikacjiWin32
intWINAPIWinMain(HINSTANCEhInstance,HINSTANCEhPrevInstance,
LPSTRlpCmdLine,intnCmdShow)
{
return0;
}
8.Terazudasięnamskompilowaćprojekt,anaweturuchomićgo(klawiszF5).Na
razieskompilowanaaplikacjanierobinicciekawego;tużpouruchomieniukończy
działanie.
9.Drugazfundamentalnychfunkcjitotzw.proceduraokna.Powinnabyćfunkcją
zdefiniowanąwdomyślnejprzestrzeninazw,względniestatycznąfunkcjąskła-
dowąjakiejśklasy.Jajednakchciałbym,abyfunkcjatanietylkobyłafunkcją
składową(metodą),ależebymiaładostępdowszystkichpóltejklasy.Dlatego
wykorzystamyprostytrickpolegającynatym,żezdefiniujemyfunkcjęWndProc,
którejjedynymzadaniembędziewywołaniemetodyCOkno::WndProc.Oczywi-
ściewcześniejmusimyzdefiniowaćklasęCOkno.
WróćmyzatemdoplikuOknoGL.hizdefiniujmyklasęCOknozgodniezewzorem
zlistingu1.3.Jednocześnietworzymyinstancjętejklasyonazwieokno.
Listing1.3.KlasaCOknowyposażonatylkowjednąfunkcjęskładowąWndProc
classCOkno
{
public:
LRESULTWndProc(HWNDhWnd,UINTmessage,WPARAMwParam,LPARAMlParam);
}okno;
10.MusimyterazzdefiniowaćfunkcjęskładowąCOkno::WndProc(tozachwilę)
i„zwykłą”funkcjęWndProc.Todrugiezadaniejestprostenależytylkozadbać
oodpowiedniąpostaćsygnatury(listing1.4).JeżelifunkcjęWndProczdefiniowa-
liśmyzaWinMain,należyjeszczezadeklarowaćnapoczątkupliku.
Listing1.4.Niby-rzutowaniemetodynafunkcję
LRESULTCALLBACKWndProc(HWNDhWnd,UINTmessage,WPARAMwParam,LPARAMlParam)
{
returnokno.WndProc(hWnd,message,wParam,lParam);
}
11.TerazzajmijmysięmetodąCOkno::WndProc(listing1.5).Towniejokreślać
będziemyreakcjęaplikacjinaczynnościwykonywaneprzezużytkownika(np.
ruchmyszą,naciśnięcieklawisza).