Bevezetés az API-programozási
Bevezetés az API-programozási
API alkalmazás programozási felület. Más szóval, ezek által kínált lehetőségek a Windows operációs rendszer által használt felhasználói program. A rendszer által kínált funkciókat a Windows programozó, más néven API funkciókat. Programozás csak azokat a funkciókat úgynevezett API-programozás. Ebben a cikkben fogunk adni egy meglehetősen széles körű bevezetés az API-programokat.
A szerkezet a API-programok
A központi fogalma Windows programozás az üzenetet. A rendszer egy üzenetet küld az alkalmazást, majd pedig megfelelően kell reagálni. Az üzenet címzettjét a jellemzői az alkalmazás ablak, és a programozás során a legtöbb időt a fejlesztés API-alkalmazás.
Klasszikus API-program szerkezete határozza meg a négy komponens: inicializálása; várjon hurok, vagy az üzenet hurok; A funkció a fő ablak; egyéb funkciók. A legegyszerűbb esetben az utóbbi komponens lehet jelen. A két első komponensek kerülnek WinMain funkciót. Tehát minden rendben.
funkció WinMain
WinMain függvényt hívja meg a rendszer, ami eltelt négy paraméter:
- HINSTANCE - diskriptor Tekushev alkalmazás példány.
- hPrevInctance - mindig NULL.
- lpCmdLine - egy mutatót a parancssor a program futtatásához.
- nCmdShow - oly módon, hogy szemléltesse az ablakot.
inicializálás
Röviden, nem keletkezik bejegyzés osztályú ablakok, a teremtés és a kimenetet ICRAN. Regisztráció klassv ablak funkció végrehajtása:
Ne tévesszen ATOM típus, int csak nekünk. Az egyetlen paraméter a függvény mutató struktúra WNDCLASS. Ha az osztály bejelentkezett egy ablak ennek az osztálynak lehet létrehozni funkció CreateWindow. Nézzük most a szerkezet WNDCLASS:
Mint látható, a szerkezet nem nagy ügy. Ha a regisztráció sikeres, mint látni fogjuk, a nulla visszatérési értékkel, így lehetséges, hogy hozzon létre egy ablakot.
Íme néhány jellemző értékeit a szerkezet tagjai:
- Stílusok osztály ablakok. Stílus ablakban határozza meg a kombináció több előre definiált konstansok. Elég gyakran ő pologaetsya nulla, ami azt jelenti, „alapértelmezett stílus”.
- Diskriptor ablak ikonok. Meghatározása LoadIcon funkciót. Az első paraméter ennek a funkciónak diskriptor alkalmazás, a második - egy karakterlánc, amely a nevét az ikon erőforrás. Annak érdekében, hogy az egyik standard ikonok, az első paraméter kell beállítani NULL, a második érték az alábbi állandók: IDI_APLICATION - standartnayu alkalmazás ikonjának IDI_ASTERISK - ikon "Information"; IDI_EXCLAMATION - "felkiáltójel"; IDI_HAND - "stoptábla"; IDI_QUESTION - "kérdőjel".
- Diskriptor kurzort. Annak megállapításához, a kurzor segítségével az API-funkciót LoadCursor. A funkció hasonló az LoadIcon funkciót.
- Az osztály neve. Osztály neve - ez csak egy húr, amelyet azután létrehozásához használt ablakhoz.
Az értékek a többi tag a szerkezet fogjuk be később.
Ablak funkció révén CreteWindow. Itt látható a prototípus ezt a funkciót:
Ezt a funkciót használva, nézzük meg később. Itt az a lényeg, hogy a függvény visszatérési diskriptor létre ablakot, hiba esetén - 0.
Annak érdekében, hogy helyesen megjeleníteni az ablak a képernyőn, végezze el még két funkciót.
BOOL ShowWindow (HWND hwnd, int nCmdShow) - Ez a funkció egy üzenetet jelenít meg a képernyőn látható mezőbe. Az első lehetőség - diskriptor ablak, a második - a megjelenítési módot. Mivel ez a paraméter általánosan használt paraméter nWinMode WinMain funkciót. Azt is előre definiált állandók:
- SW_HIDE - Az ablak elrejtéséhez
- SW_MAXIMIZE - ablak maximalizálását
- SW_MINIMIZE - minimalizálni az ablakon, és aktiválja a legfelső ablak
- SW_RESTORE - ablak megjelenítéséhez a normál állapotban
- SW_SHOW - aktiválja oknos aktuális swap
- SW_SHOWMAXIMIZED -, hogy maximalizálja az ablakot, és azt aktív
- SW_SHOWMINIMIZED - minimalizálni az ablakon
- SW_SHOWNA - megjeleníti az ablakot a jelenlegi állapot. Ebben az esetben, aktiválja az ablakot, hogy aktív maradjon.
- SW_SHOWNOACTIVATE - visszaállítja az ablak előző egy feltétellel. Ebben az esetben az aktív ablak aktív marad.
- SW_SHOWNORMAL - aktiválja és visszaállítja az ablak korábbi méreteket.
BOOL UpdateWindow (HWND hwnd) - Hívás ezt a funkciót eredményez azonnali átfestés az ablak és a küldő funkció WM_PAINT üzenet ablakban.
üzenet hurok
Üzenet hurok jelen van az összes Windows-párnázott. Ez nem mindig a ciklus világosan bemutatja a programban.
Egy sor álláshely van három funkciót. Ezek a funkciók mindig ott van, de rajtuk kívül a hurok lehet mások számára. GetMessage funkció kiválasztja a sorban kérelem üzeneteket a következő alkalmazás. ahelyett, hogy ez a funkció használható a hasonló funkciójú és PostMessage PeekMessage.
A három funkció egy mutatót az MSG vonalat. Nézzük meg:
- hwnd - diskriptor ablakot.
- üzenet - az üzenet kódját.
- wParam - további paramétert.
- lParam - további paramétert.
- időt - az üzenet küldésére.
- pt - a helyzet az egér kurzor.
Prototype MessageBox funkciót.
Az első paraméter a függvény - egy mutatót a MSG vonal, amely fel a kapott információkat. A második paraméter diskriptor szánt ablakok üzenetet. Ha ez a paraméter NULL, „taszítják” minden üzenet érkezett a kérelmet. Az utolsó két érv adjon meg egy sor üzenetet. Annak érdekében, hogy üzeneteket fogadni a teljes körű, ezeket a paramétereket meg kell egyeznie a 0.
Funkció TransleteMessage preabrazuet WM_KEYDOWN és WM_KEYUP üzenetek WM_CHAR. DispatchMessage függvény egyszerűen továbbítja az üzenetet az ablak eljárást.
ablakfüggvénynek
Ez egy másik komponens feldolgozásáért felelős az üzenet ablakban. Ezt a funkciót nevezzük a rendszer, és négy paraméter egybeesik az első chetyrbmya tagjai az MSG struktúra. Art API-programozás elsősorban az írás ablak funkciók. Itt egy példa egy ablak funkció:
Visual C ++ környezetben van némi segítségre, akik írási API-programokat. Akkor használja két lehetőség van. A projekt listából válassza Win32 Project, majd az alábbi két út: a vizsgálat megszakításához Üres projekt vagy sem. Ha nem jelöli be a jelölőnégyzetet, a rendszer létrehoz egy egyszerű ablak alkalmazás minimális funkcionalitással, így viszont, hogy dolgozzon ki a projekt, és hozzon létre alkalmazásokat a komplexitás.
És így, kezdjük. Válassza ki az utat, egy egyszerű projekt. Nyisd ki az ablakot Solution Explorer. Ahogy az várható volt, üres projekt. Kattintson a jobb gombbal a projekt myschi sort, és kiválasztja a Új tétel, típus - CPP és bevezeti a név api1.cpp. Most már tudjuk kihasználni a szváminak, hogy mások, mint te tanultál. Ahogy ülünk oboschlis minimális számú fájlt. Pozhklyuchaemy windows.h fájl meghatározását tartalmazza API funkciók, valamint igénybevételéhez szükséges állandók és adattípusok. Itt van a kód a program: