„Windows“šeimos operacinių sistemų vartotojo sąsajos veikimo principai yra pagrįsti lango koncepcija. Darbalaukis, užduočių juosta, sąrašai, dialogai, mygtukai, meniu yra visi langai. Todėl iš tikrųjų, norint parodyti bet kurį sąsajos elementą, turite sukurti langą „Windows“.
Būtinas
- - kompiliatorius;
- - „Windows Platform SDK“.
Nurodymai
1 žingsnis
Jei reikia, užregistruokite kuriamo lango klasę. Paskambinkite į API funkcijas „RegisterClass“, „RegisterClassEx“arba naudokite atitinkamą naudojamos sistemos funkcionalumą.
Funkcijos „RegisterClass“ir „RegisterClassEx“priima nuorodas į WNDCLASS ir WNDCLASSEX tipo struktūras, kaip vienintelį jų parametrą. Kuriant langą vietoj klasės pavadinimo galima naudoti ATOM tipo grąžinimo vertę. Jei funkcijos iškvietimas nepavyksta, grąžinimo vertė yra 0.
Iš karto sukurti WNDCLASS arba WNDCLASSEX tipo struktūrą. Užpildykite visus būtinus laukus. Teisingos vertės visų pirma turi būti pateikiamos:
- cbSize - struktūros dydis baitais;
- stilius - langų klasės stilių rinkinys;
- lpfnWndProc - rodyklė į lango procedūrą;
- hInstance yra modulio, kuriame užregistruota langų klasė, rankena;
- lpszClassName yra simbolinis klasės pavadinimas.
Likusius laukus galima įrašyti su NULL reikšmėmis. Norėdami užregistruoti lango klasę, skambinkite funkcija. Patikrinkite grąžintą rezultatą.
2 žingsnis
Jei reikia, pasirinkite esamą langų klasę. Privalote žinoti simbolinį klasės pavadinimą (tas, kuris buvo perduodamas per lpszClassName žymeklį jį registruojant) arba atitinkamą ATOM vertę. Klasė gali būti vietinė programos lygiu, visuotinė programos lygiu (užregistruota su vėliava CS_GLOBALCLASS) arba sistemos klasė. Paskutinis tipas apima langų klases su pavadinimais: mygtukas, „ComboBox“, „Edit“, „ListBox“, MDIClient, „ScrollBar“, „Static“. Tokios klasės kaip „RichEdit20W“arba „SysListView32“yra registruojamos, kai įkeliamos atitinkamos bibliotekos.
3 žingsnis
Sukurkite „Windows“langą. Naudokite API funkcijas „CreateWindow“, „CreateWindowEx“arba atitinkamus apipavidalinimo metodus naudojamų struktūrų ar bibliotekos klasės objektams. Funkcijos „CreateWindowEx“prototipas atrodo taip:
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);
Funkcija „CreateWindow“skiriasi nuo „CreateWindowEx“tik tuo atveju, jei nėra parametro „dwExStyle“.
Skambinkite „CreateWindow“arba „CreateWindowEx“. Parametre lpClassName perduokite lango klasės, kurią apibrėžėte atlikdami pirmąjį arba antrąjį veiksmą, pavadinimą arba reikšmę. Parametrai x, y, nWidth, nHeight gali būti kuriamo lango koordinatės ir dydžiai. Tėvų lango rankena (jei yra) perduodama per „hWndParent“.
Išsaugokite ir išanalizuokite „CreateWindow“arba „CreateWindowEx“grąžintą vertę. Pasisekę jie grąžins rankeną į naują langą; jei nepavyks, NULL.