Een venster klasse registreren

Een venster klasse definieert de kenmerken van een venster, zoals de stijl, pictogram, cursor, menu en venster procedure. De eerste stap in het registreren van een window class is een WNDCLASSEX structuur met de venster klasse informatie invullen. Zie elementen van een Window Classvoor meer informatie. Volgende, geef de structuur aan de functie RegisterClassEx . Voor meer informatie, Zie Using Venster klassen.

Om te registreren een wereldwijde application-klasse, stijl geven voor de CS_GLOBALCLASS in de stijl lid van de WNDCLASSEX structuur. Bij de registratie een lokale application-klasse, geef geen de CS_GLOBALCLASS stijl.

Als u het venster klasse met de ANSI-versie van RegisterClassEx, RegisterClassExA, registreert vraagt de toepassing dat het systeem pas tekst parameters van berichten naar de ramen van de gemaakte klasse met de ANSI-tekenset instellen; Als u de klasse met behulp van de Unicode-versie van RegisterClassEx, RegisterClassExW, registreert vraagt de toepassing dat het systeem tekst parameters van berichten doorgeven aan de ramen van de gemaakte klasse met behulp van de Unicode-tekenset. De functie IsWindowUnicode kan toepassingen query de aard van elk venster. Zie voor meer informatie over ANSI en Unicode functies in de API Win32, Win32 functie Prototypes.

Het uitvoerbare bestand of DLL die de klasse geregistreerd is de eigenaar van de klasse. Het systeem bepaalt klasse eigendom vanuit de hInstance lid van de structuur van de WNDCLASSEX doorgegeven aan de functie RegisterClassEx wanneer de klasse is geregistreerd. Voor DLL-bestanden, de sessiehandler van de DLL de hInstance lid moet worden.

Windows 95: De klasse wordt vernietigd wanneer de eigenaar wordt gesloten of verwijderd wordt. Om deze reden, moet het proces vernietigen alle vensters met behulp van de klasse voordat de eigenaar wordt gesloten of verwijderd wordt.

Windows NT: De klasse is niet vernietigd wanneer het dll-bestand dat eigenaar is van het geheugen verwijderd wordt. Daarom, als het systeem het venster procedure voor een venster van die klasse aanroept, zal veroorzaken een toegangsfout, omdat de DLL die de procedure venster bevat niet langer in het geheugen is. Het proces moet vernietigen alle vensters met behulp van de klasse voordat het dll-bestand verwijderd wordt en de UnregisterClass functie aanroepen.

Index