Een Windows-venster Maken

Inhoudsopgave:

Een Windows-venster Maken
Een Windows-venster Maken

Video: Een Windows-venster Maken

Video: Een Windows-venster Maken
Video: Starten met Windows 10: Vensters, meerdere bureaubladen, schalen, flip en shake, taakweergave,... 2024, November
Anonim

De werkingsprincipes van de gebruikersinterface van besturingssystemen van de Windows-familie zijn gebaseerd op het concept van een venster. Het bureaublad, de taakbalk, lijsten, dialoogvensters, knoppen, menu's zijn allemaal vensters. Daarom moet u in feite een Windows-venster maken om een interface-element weer te geven.

Een Windows-venster maken
Een Windows-venster maken

Noodzakelijk

  • - compiler;
  • - Windows Platform-SDK.

instructies:

Stap 1

Registreer indien nodig de klasse van het aan te maken venster. Roep de API-functies RegisterClass, RegisterClassEx aan of gebruik de juiste functionaliteit van het gebruikte framework.

De functies RegisterClass en RegisterClassEx accepteren verwijzingen naar structuren van respectievelijk het type WNDCLASS en WNDCLASSEX als hun enige parameter. De retourwaarde van het type ATOM kan worden gebruikt in plaats van de klassenaam bij het maken van een venster. Als de functieaanroep mislukt, is de geretourneerde waarde 0.

Instantieer een structuur van het type WNDCLASS of WNDCLASSEX. Vul alle benodigde velden in. In het bijzonder moeten de juiste waarden worden geplaatst in:

- cbSize - structuurgrootte in bytes;

- stijl - een reeks stijlen voor de vensterklasse;

- lpfnWndProc - verwijzing naar een vensterprocedure;

- hInstance is de handle van de module waarin de window class is geregistreerd;

- lpszClassName is de symbolische naam van de klasse.

De rest van de velden kunnen worden geschreven met NULL-waarden. Voer een functieaanroep uit om de vensterklasse te registreren. Controleer het geretourneerde resultaat.

Stap 2

Selecteer indien nodig een bestaande vensterklasse. U moet de symbolische klassenaam weten (degene die door de lpszClassName-aanwijzer is gegaan bij het registreren) of de bijbehorende ATOM-waarde. De klasse kan lokaal zijn op applicatieniveau, globaal op applicatieniveau (geregistreerd met de CS_GLOBALCLASS-vlag) of systeemklasse. Het laatste type omvat klassen van vensters met de namen: Button, ComboBox, Edit, ListBox, MDIClient, ScrollBar, Static. Klassen zoals RichEdit20W of SysListView32 worden geregistreerd wanneer de bijbehorende bibliotheken worden geladen.

Stap 3

Maak een Windows-venster. Gebruik de API-functies CreateWindow, CreateWindowEx of de juiste wrapper-methoden voor klasseobjecten van het framework of de bibliotheek die u gebruikt. Het prototype voor de functie CreateWindowEx ziet er als volgt uit:

HWND CreateWindowEx (DWORD dwExStyle, LPCTSTR lpClassName, LPCTSTR lpWindowName, DWORD dwStyle, intx, int y, int nBreedte, int nHoogte, HWND hWndOuder, HMENU hMenu, HINSTANCE hInstance, LPVOID lpParam);

De functie CreateWindow verschilt alleen van CreateWindowEx als de parameter dwExStyle ontbreekt.

Roep CreateWindow of CreateWindowEx aan. Geef in de parameter lpClassName de naam of ATOM-waarde door van de vensterklasse die u in de eerste of tweede stap hebt gedefinieerd. De parameters x, y, nWidth, nHeight kunnen de coördinaten en afmetingen zijn van het venster dat wordt gemaakt. De bovenliggende vensterhandle (indien aanwezig) wordt doorgegeven via hWndParent.

Bewaar en ontleden de waarde die wordt geretourneerd door CreateWindow of CreateWindowEx. Bij succes zullen ze een handle terugsturen naar het nieuwe venster; bij mislukking, NULL.

Aanbevolen: