A Windows család operációs rendszereinek felhasználói felületének működési elvei az ablak koncepcióján alapulnak. Az asztal, a tálca, a listák, a párbeszédpanelek, a gombok, a menük ablakok. Ezért valójában bármely interfész elem megjelenítéséhez létre kell hoznia egy Windows ablakot.
Szükséges
- - fordító;
- - Windows Platform SDK.
Utasítás
1. lépés
Szükség esetén regisztrálja a létrehozandó ablak osztályát. Hívjon a RegisterClass, RegisterClassEx API függvényekre, vagy használja a használt keretrendszer megfelelő funkcióit.
A RegisterClass és a RegisterClassEx függvények egyetlen paraméterként elfogadják a WNDCLASS és a WNDCLASSEX típusú struktúrák mutatóit. Az ablak létrehozásakor az ATOM típusú visszatérési érték használható az osztálynév helyett. Ha a függvényhívás sikertelen, a visszatérési érték 0.
Instantáljon egy WNDCLASS vagy WNDCLASSEX típusú struktúrát. Töltse ki az összes szükséges mezőt. Különösen a helyes értékeket kell elhelyezni:
- cbSize - a szerkezet mérete bájtokban;
- stílus - az ablakosztály stíluskészlete;
- lpfnWndProc - mutató egy ablak eljárásra;
- hInstance annak a modulnak a fogantyúja, amelyben az ablakosztály regisztrálva van;
- lpszClassName az osztály szimbolikus neve.
A többi mező NULL értékekkel írható. Hívjon egy függvényhívást az ablakosztály regisztrálásához. Ellenőrizze a visszaküldött eredményt.
2. lépés
Szükség esetén válasszon egy meglévő ablakosztályt. Ismernie kell a szimbolikus osztálynevet (az, amely regisztráláskor áthaladt az lpszClassName mutatón), vagy a megfelelő ATOM értéket. Az osztály lehet helyi az alkalmazás szintjén, globális az alkalmazás szintjén (regisztrálva van a CS_GLOBALCLASS zászlóval), vagy rendszerszintű. Az utolsó típus a Windows osztályait tartalmazza a következő névvel: Button, ComboBox, Edit, ListBox, MDIClient, ScrollBar, Static. Az olyan osztályokat, mint a RichEdit20W vagy a SysListView32, a megfelelő könyvtárak betöltésekor regisztrálják.
3. lépés
Hozzon létre egy Windows ablakot. Használja a CreateWindow, a CreateWindowEx API függvényeket vagy a megfelelő burkoló módszereket a használt keret vagy könyvtár osztályobjektumaihoz. A CreateWindowEx függvény prototípusa így néz ki:
HWND CreateWindowEx (DWORD dwExStyle, LPCTSTR lpClassName, LPCTSTR lpWindowName, DWORD dwStyle, int x, int y, int nWidth, int nHeight, HWND hWndParent, HMENU hMenu, HINSTANCE hInstance, LPVOID lpParam);
A CreateWindow függvény csak abban különbözik a CreateWindowEx-től, hogy nincs megadva a dwExStyle paraméter.
Hívja a CreateWindow vagy a CreateWindowEx alkalmazást. Adja meg az lpClassName paraméterben annak az ablakosztálynak a nevét vagy az ATOM értékét, amelyet az első vagy a második lépésben definiált. Az x, y, nWidth, nHeight paraméterek lehetnek a létrehozandó ablak koordinátái és méretei. A szülőablak fogantyúja (ha van ilyen) átkerül a hWndParent-en.
Mentse és elemezze a CreateWindow vagy a CreateWindowEx által visszaadott értéket. A siker után visszaadnak egy fogantyút az új ablakba, kudarc esetén NULL.