LECKÉK: Directdraw_3 |
Nos első lépésként készíts egy uj mappát a c meghajtó főkönyvtárában progi néven. Indíts el a fordítót,és készíts egy új projectet: DEV C++: fájl->új project-> válaszd az empty project nevet, mentsd el az előzőleg létrehozott mappába,és adj hozzá egy új fájl-t nevezd el main.cpp -nek. MSVC6.0: fájl->uj ->win32application ikon név: progi célmappa pedig a progi legyen! Az ok-ra kattintva válaszd az an empty project-et. és finis. A source mappában adj hozzá egy új fájl-t main .cpp néven. Nos akkor van kétféle projectünk,és két üres main.cpp fájl-unk, azaz nektek csak 1 féle. Azért csináltam így,mert innen meglehetősen egyforma lesz a progi felépítése: Azért, hogy windows ablakot tudjunk létrehozni a fordítónak tudnia kell ,hogy hogyan vannak dekralálva a különböző struktúrák, osztályok ehez kell beírni: #include <windows.h> //dekralációk: HWND hwnd; bool fut= true; A HWND egy azonosító, ami akkor kap értéket,ha az ablakunk létrejött,fontos a dx felület létrehozásakor időzítőknél,hang kreálásakor stb. fut : logikai változó ha false értéket vesz fel, a programunk véget ér. LRESULT CALLBACK WindowProcedure(.....) visszatérési függvény, a windows üzenetek feldolgozásához. uzenetkezelo() : függvény ami lekérdezi az üzeneteket és továbbitja a visszatérési függvénynek. A dekralációk után jönnek a //MEGVALÓSÍTÁSOK: Elsőnek a main() függvény..... ezt azért nem kell dekralálni,mert a egy függvényt "megvalósítunk",mielőtt használnánk,akkor az egyben a dekralációja is. int WINAPI WinMain(HINSTANCE hThisInstance,HINSTANCE
hPrevInstance,LPSTR lpszArgument,int nFunsterStil) Nos az első függvényünk a main(....) egy statikus struktúra létrehozásával kezdődik: WNDCLASSEX tipusú és wincl; nevű struktúra, aminek kitöltjük az egyes tagjait. Ezután beregisztráljuk a windows-ba :RegisterClassEx (&wincl) a címének megadásával (& a cime operátor) Létrehozzuk az ablakot, a CreateWindowEx (...) fuggvény hívásával a visszatérési érték az ablakunk HWND-je. Az ablak megjelenítése pedig a ShowWindow(hwnd,nFunsterStil); függvénnyel lehet. És létrehozunk egy végtelen ciklust ,tehát a programunk soha sem fog megszakadni,amig a fut változó értéke hamis nem lesz. Ezt majd az esc billentyű figyelésével fogjuk megoldani. Most nézzük a visszatérési függvényt! LRESULT CALLBACK WindowProcedure (HWND hwnd, UINT
message, WPARAM wParam, LPARAM lParam) Tulajdonképpen ez a függvény kezeli az üzeneteket,és most a billentyű lenyomása eseményt figyeljük,és ha az esc-t nyomtuk,akkor tud kilépni az alkalmazásunk a végtelen ciklusból. Maradt még az uzenetkezelo() függvény: void uzenetkezelo() fordítás -- futtatás .... Ha minden jól megy akkor lesz egy szép szürke semmitmondó ablakunk,ami eltűnik az esc billentyűre. Hát ez kell nekünk.
|