Forekomst i underklasse

En program-underklasser for en forekomst av et vindu ved hjelp av funksjonen SetWindowLong . Programmet overfører GWL_WNDPROC-flagg, slik vinduet til underklasse, og adressen til underklasse prosedyren for å SetWindowLong. Prosedyren underklasse kan ligge i programmets installasjonsfil eller et bibliotek for dynamiske koblinger (DLL).

SetWindowLong returnerer adressen til vinduets opprinnelige vindusprosedyre. Programmet må lagre adressen, bruker den i etterfølgende kall til funksjonen CallWindowProc skjedde avskåret meldinger til den opprinnelige vinduet prosedyren. Programmet må også ha det opprinnelige vinduet prosedyreadresse å fjerne underklassen fra vinduet. Hvis du vil fjerne underklassen, kaller programmet SetWindowLong igjen, passerer adressen til den opprinnelige vindu prosedyren med flagget GWL_WNDPROC og håndtak til vinduet.

Systemet eier systemet globale klasser, og aspekter av kontrollene kan endres fra én versjon av systemet til neste. Hvis programmet må underklasse et vindu som tilhører en systemet globale klasse, kanskje utvikleren må oppdatere programmet når en ny versjon av systemet er lansert.

Fordi forekomsten i underklasse oppstår når et vindu er opprettet, kan du ikke legge til noen ekstra byte til vinduet. Programmer som underklasse et vindu bør bruke vinduets egenskap-listen til å lagre alle data som er nødvendig for en forekomst av vinduet subclassed. Hvis du vil ha mer informasjon, kan du se Vinduet Egenskaper.

Når et program underklasser et subclassed vindu det må fjerne underklassene i motsatt rekkefølge de ble utført. Hvis fjerning av ordren ikke er tilbakeført, kan det oppstå en uopprettelig systemfeil.

Index