Windowsi perekonna operatsioonisüsteemide kasutajaliidese toimimise põhimõtted põhinevad akna kontseptsioonil. Töölaud, tegumiriba, loendid, dialoogid, nupud, menüüd on kõik aknad. Seetõttu peate tegelikult mis tahes liidese elemendi kuvamiseks looma Windowsi akna.
Vajalik
- - koostaja;
- - Windowsi platvormi SDK.
Juhised
Samm 1
Vajadusel registreerige loodava akna klass. Helistage API-funktsioonidele RegisterClass, RegisterClassEx või kasutage kasutatava raamistiku vastavat funktsionaalsust.
Funktsioonid RegisterClass ja RegisterClassEx aktsepteerivad nende ainsa parameetrina vastavalt WNDCLASS ja WNDCLASSEX tüüpi struktuuride viiteid. Akna loomisel saab klassi nime asemel kasutada ATOM-i tagastusväärtust. Kui funktsioonikõne ebaõnnestub, on tagastusväärtus 0.
Kohestage struktuuri tüüp WNDCLASS või WNDCLASSEX. Täitke kõik vajalikud väljad. Õiged väärtused tuleb paigutada eelkõige järgmistesse kohtadesse:
- cbSize - struktuuri suurus baitides;
- stiil - aknaklassi stiilide kogum;
- lpfnWndProc - kursor aknaprotseduurile;
- hInstance on mooduli käepide, milles aknaklass on registreeritud;
- lpszClassName on klassi sümboolne nimi.
Ülejäänud väljad saab kirjutada NULL-väärtustega. Aknaklassi registreerimiseks helistage funktsioonikutsega. Kontrollige tagastatud tulemust.
2. samm
Vajadusel valige olemasolev aknaklass. Te peate teadma klassi sümboolset nime (see, mis selle registreerimisel läbis kursori lpszClassName) või vastavat ATOM-väärtust. Klass võib olla rakenduse tasandil lokaalne, rakenduse tasandil globaalne (registreeritud lipuga CS_GLOBALCLASS) või süsteemiklass. Viimane tüüp sisaldab aknaklasse nimedega: Button, ComboBox, Edit, ListBox, MDIClient, ScrollBar, Static. Klassid nagu RichEdit20W või SysListView32 registreeritakse vastavate teekide laadimisel.
3. samm
Looge Windowsi aken. Kasutage kasutatava raamistiku või teegi klassiobjektide jaoks API-funktsioone CreateWindow, CreateWindowEx või sobivaid ümbrismeetodeid. Funktsiooni CreateWindowEx prototüüp näeb välja selline:
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);
Funktsioon CreateWindow erineb CreateWindowEx-st ainult parameetri dwExStyle puudumisel.
Helistage CreateWindow või CreateWindowEx. Sisestage parameetris lpClassName esimeses või teises etapis määratletud aknaklassi nimi või väärtus. Parameetrid x, y, nWidth, nHeight võivad olla loodava akna koordinaadid ja suurused. Emaakna käepide (kui see on olemas) edastatakse hWndParenti kaudu.
Salvestage ja sõeluge CreateWindow või CreateWindowEx tagastatud väärtus. Edu korral tagastavad nad uude aknasse käepideme; ebaõnnestumisel NULL.