Global subclassificering

Als wereldwijd subklasse een venster klasse, moet de toepassing een greep er voor een venster van de klasse. De toepassing moet ook de handvat om te verwijderen van de subklasse. Normaal gesproken wordt een toepassing te krijgen het handvat, gemaakt voor een verborgen venster van de klasse te worden subclassed. Na het verkrijgen van de greep, roept de toepassing de SetClassLong functie, het handvat, de GCL_WNDPROC vlag en het adres van de subklasse procedure. SetClassLong geeft het adres van de oorspronkelijke venster procedure voor de klasse.

Het oorspronkelijke venster procedure adres is gebruikt in global subclassificering op dezelfde manier die het wordt gebruikt in aanleg subclassificering. De subklasse procedure geeft berichten aan het oorspronkelijke venster procedure door te roepen CallWindowProc. De applicatie verwijdert de subklasse van de klasse venster door de aanroepende SetClassLong opnieuw, vermelding van het adres van de oorspronkelijke venster procedure, de GCL_WNDPROC vlag en de bestandsingang naar een venster van de klasse wordt subclassed. Een toepassing dat wereldwijd subklassen een klasse control de subklasse verwijderen moet wanneer de toepassing wordt beëindigd; anders treedt een onherstelbare systeemfout.

Global subclassificering heeft dezelfde beperkingen als exemplaar subclassificering, plus enkele aanvullende beperkingen. Een toepassing moet de extra bytes voor de klasse of het exemplaar van het venster niet gebruiken zonder te weten precies hoe het oorspronkelijke venster procedure gebruikt ze. Als de toepassing gegevens aan een venster koppelen moet, moet het venster Eigenschappen gebruiken.

Index