Die beginsels van die werking van die gebruikerskoppelvlak van die bedryfstelsels van die Windows-familie is gebaseer op die konsep van 'n venster. Die lessenaar, taakbalk, lyste, dialoogvensters, knoppies, menu's is almal vensters. Om 'n koppelvlak-element te kan vertoon, moet u dus 'n venstervenster skep.
Nodig
- - samesteller;
- - Windows-platform SDK.
Instruksies
Stap 1
Registreer indien nodig die klas van die venster wat gemaak moet word. Bel die API-funksies RegisterClass, RegisterClassEx of gebruik die toepaslike funksionaliteit van die raamwerk wat gebruik word.
Die RegisterClass- en RegisterClassEx-funksies aanvaar verwysings na strukture van die tipe WNDCLASS en WNDCLASSEX, as hul enigste parameter. Die retourwaarde van die tipe ATOM kan gebruik word in die plek van die klasnaam wanneer u 'n venster skep. As die funksie-oproep misluk, is die retourwaarde 0.
Instansieer 'n struktuur van die tipe WNDCLASS of WNDCLASSEX. Vul alle nodige velde in. In die besonder moet die regte waardes geplaas word in:
- cbSize - struktuurgrootte in grepe;
- styl - 'n stel style vir die vensterklas;
- lpfnWndProc - wyser na 'n vensterprosedure;
- hInstance is die handvatsel van die module waarin die vensterklas geregistreer is;
- lpszClassName is die simboliese naam van die klas.
Die res van die velde kan met NULL-waardes geskryf word. Maak 'n funksie-oproep om die vensterklas te registreer. Gaan die resultaat terug.
Stap 2
Kies 'n bestaande vensterklas indien nodig. U moet die simboliese klasnaam (die een wat deur die aanwyser lpszClassName gelei word wanneer u dit registreer) ken of die ooreenstemmende ATOM-waarde. Die klas kan plaaslik wees op toepassingsvlak, globaal op toepassingsvlak (geregistreer met die CS_GLOBALCLASS-vlag) of stelselklas. Die laaste tipe bevat klasse vensters met die name: Button, ComboBox, Edit, ListBox, MDIClient, ScrollBar, Static. Klasse soos RichEdit20W of SysListView32 word geregistreer wanneer die ooreenstemmende biblioteke gelaai word.
Stap 3
Skep 'n Windows-venster. Gebruik die API-funksies CreateWindow, CreateWindowEx of die toepaslike omslagmetodes vir klasvoorwerpe van die raamwerk of biblioteek wat u gebruik. Die prototipe vir die CreateWindowEx-funksie lyk soos volg:
HWND CreateWindowEx (DWORD dwExStyle, LPCTSTR lpClassName, LPCTSTR lpWindowName, DWORD dwStyle, int x, int y, int nWydte, int nHoogte, HWND hWndParent, HMENU hMenu, HINSTANCE hInstance, LPVOID lpParam);
Die CreateWindow-funksie verskil slegs van CreateWindowEx in die afwesigheid van die parameter dwExStyle.
Bel CreateWindow of CreateWindowEx. Stuur die naam of ATOM-waarde van die vensterklas wat u in die eerste of tweede stap gedefinieer het, in die parameter lpClassName in. Die parameters x, y, nBreedte, nHoogte kan die koördinate en groottes wees van die venster wat geskep word. Die ouervenstergreep (indien enige) word deur hWndParent gelei.
Stoor en ontleed die waarde wat deur CreateWindow of CreateWindowEx teruggestuur word. As hulle sukses behaal, sal hulle 'n handgreep na die nuwe venster terugbring; as dit misluk, NULL.