Munka OpenGL - bevezetés, delphisite
eljárás TForm2. Button1Click # 40; Sender: TObject # 41; ;
H: = FindWindow # 40; 'TForm1'. 'Form1' # 41; ;
ha H <> 0, akkor
ShowMessage # 40; "Ott Form1! # 41;
ShowMessage # 40; "Nem Form1! # 41;
eljárás TForm2. FormMouseMove # 40; Sender: TObject;
Shift: TShiftState; X, Y: Integer # 41; ;
Caption: = 'x =' + IntToStr # 40; X # 41; + 'Y =' + IntToStr # 40; Y # 41; ;
A cím a formában megjeleníti a koordinátáit az egér mutatót.
Fuss két esetben a program, és vegye figyelembe, hogy az ablak nincs fókusz ( „inaktív”) is reagál a mutató mozgását a felszínén.
Hivatkozással az ablakot, az alkalmazás tud vele minden olyan intézkedés üzenetváltásnak azt.
Változtassuk meg a kódot feldolgozása gombra kattintva:
eljárás TForm2. Button1Click # 40; Sender: TObject # 41; ;
H: = FindWindow # 40; 'TForm1'. 'Form1' # 41; ;
ha H <> 0, akkor
SendMessage # 40; H, WM_CLOSE, 0. 0 # 41; ;
Ha van egy osztály „TForm1” a „Form1” címet ablak, az alkalmazás küld egy üzenetet WM_CLOSE neki - próbálta az ablak bezárásához.
Hasonlóképpen, ha azt szeretnénk, hogy dolgozzon valamit a felszínen egy másik ablakban, akkor kap egy hivatkozás az ablakba.
Kezdeni, megpróbálják felhívni a felszínen a natív ablakot.
Helyezze a másik gombra, majd feldolgozás csökken a következő formában:
eljárás TForm2. Button2Click # 40; Sender: TObject # 41; ;
dc: = GetDC # 40; fogantyú # 41; ;
téglalap # 40; dc, 10. 10. 110. 110 # 41; ;
ReleaseDC # 40; Handle, dc # 41; ;
Az alkalmazás futtatásához. Ha rákattint a Hozzáadás gombra az ablak felületén tér levonni. Felhívni a alacsony szintű funkciók a Windows.
Próbáljuk felhívni a felszínen egy másik ablakban, amely meg fogja változtatni az éppen írt kód:
eljárás TForm2. Button2Click # 40; Sender: TObject # 41; ;
Ablak: = FindWindow # 40; 'TForm1'. 'Form1' # 41; ;
ha Window <> 0, akkor
dc: = GetDC # 40; ablak # 41; ;
téglalap # 40; dc, 10. 10. 110. 110 # 41; ;
ReleaseDC # 40; Handle, dc # 41; ;
A forma OnCreate eseménykezelő kezdődik a következő sorokat:
DC: = GetDC # 40; fogantyú # 41; ;
HRC: = wglCreateContext # 40; DC # 41; ;
wglMakeCurrent # 40; DC, HRC # 41; ;
Azaz, megkapjuk a Windows helyi lejátszás, állítsa be a kívánt képpontformátumot, ami OpenGL lejátszás összefüggésben, és ez a jelenlegi, ami miatt OpenGL funkciók dolgozni ezt az ablakot.
A pixel méret fogunk beszélni többet később, de most szeretném felhívni a figyelmet, hogy a két pont.
Először is, az érték a típus HDC megkapjuk létrehozásakor az ablakon, a OnCreate eseménykezelő, vagy más szóval, a kezelő számára a WM_CREATE üzenetet. Ez egy gyakori és hagyományos Windows-alapú programok.
Egyes programozók tettek rám megjegyezni, hogy megszerzése összefüggésben helyzet megteremtésében egy ablak kissé hibás a Windows 9X és helyesebb lenne, hogy szerezzen egy olyan környezetben, egy eseménykezelő vagy OnShow OnPaint. Talán ez igaz, és bizonyos helyzetekben befolyásolhatja a helyességét a kérelmet. Meg kell ezt figyelembe venni, amikor az írás kritikus alkalmazásokat.
Másodszor, a Windows helyi lejátszás és OpenGL lejátszás összefüggésben általában mentesek alkalmazás. Ez azt jelenti, OpenGL parancs kimenete általában keretezi a következő sorokat:
dc: = BeginPaint # 40; Ablak, ps # 41; ;
wglMakeCurrent # 40; DC, HRC # 41; ;
wglMakeCurrent # 40; 0 0 # 41; ;
EndPaint # 40; Ablak, ps # 41; ;
ReleaseDC # 40; Ablak, dc # 41; ;