Windows-tuoteperheen käyttöjärjestelmien käyttöliittymän toiminnan periaatteet perustuvat ikkunan käsitteeseen. Työpöytä, tehtäväpalkki, luettelot, valintaikkunat, painikkeet ja valikot ovat kaikki ikkunoita. Siksi minkä tahansa käyttöliittymäelementin näyttämiseksi sinun on luotava Windows-ikkuna.
Tarpeellinen
- - kääntäjä;
- - Windows Platform SDK.
Ohjeet
Vaihe 1
Rekisteröi luodun ikkunan luokka tarvittaessa. Soita API-toiminnoille RegisterClass, RegisterClassEx tai käytä käytetyn kehyksen asianmukaista toiminnallisuutta.
RegisterClass- ja RegisterClassEx-funktiot hyväksyvät viitteitä tyypin WNDCLASS ja WNDCLASSEX rakenteille ainoaksi parametriksi. ATOM-tyypin palautusarvoa voidaan käyttää luokan nimen sijasta ikkunaa luettaessa. Jos toimintokutsu epäonnistuu, paluuarvo on 0.
Välitön rakenne WNDCLASS tai WNDCLASSEX. Täytä kaikki tarvittavat kentät. Oikeat arvot on asetettava erityisesti:
- cbSize - rakenteen koko tavuina;
- tyyli - joukko tyylilajeja ikkunaluokalle;
- lpfnWndProc - osoitin ikkunamenettelyyn;
- hInstance on sen moduulin kahva, johon ikkunaluokka on rekisteröity;
- lpszClassName on luokan symbolinen nimi.
Loput kentät voidaan kirjoittaa NULL-arvoilla. Rekisteröi ikkunaluokka soittamalla toimintokutsu. Tarkista palautettu tulos.
Vaihe 2
Valitse olemassa oleva ikkunaluokka tarvittaessa. Sinun on tiedettävä symbolinen luokan nimi (se, joka kulkee lpszClassName-osoittimen läpi rekisteröitäessäsi) tai vastaava ATOM-arvo. Luokka voi olla paikallinen sovellustasolla, globaali sovellustasolla (rekisteröity CS_GLOBALCLASS-lipulla) tai järjestelmäluokka. Viimeinen tyyppi sisältää ikkunaluokat nimillä: Button, ComboBox, Edit, ListBox, MDIClient, ScrollBar, Static. Luokat, kuten RichEdit20W tai SysListView32, rekisteröidään, kun vastaavat kirjastot ladataan.
Vaihe 3
Luo Windows-ikkuna. Käytä API-funktioita CreateWindow, CreateWindowEx tai sopivia kääremenetelmiä käyttämiesi puitteiden tai kirjastojen luokan objekteille. CreateWindowEx-funktion prototyyppi näyttää tältä:
HWND CreateWindowEx (DWORD dwExStyle, LPCTSTR lpClassName, LPCTSTR lpWindowName, DWORD dwStyle, int x, sis. y, int nLeveys, int nKorkeus, HWND hWndParent, HMENU hValikko, HINSTANCE hInstance, LPVOID lpParam);
CreateWindow-toiminto eroaa CreateWindowEx-toiminnosta vain, jos dwExStyle-parametria ei ole.
Soita CreateWindow tai CreateWindowEx. Anna parametrissa lpClassName ensimmäisessä tai toisessa vaiheessa määrittämäsi ikkunaluokan nimi tai ATOM-arvo. Parametrit x, y, nWidth, nHeight voivat olla luotavan ikkunan koordinaatit ja koot. Yläikkunan kahva (jos sellainen on) viedään hWndParentin kautta.
Tallenna ja jäsennä CreateWindow- tai CreateWindowEx-palauttama arvo. Menestyksen jälkeen he palauttavat kahvan uuteen ikkunaan; epäonnistumisen yhteydessä NULL.