Vinduet prosedyren i underklasse

Når et program oppretter et vindu, tildeler systemet en blokk med minne for lagring av informasjon som er spesifikk for vinduet, inkludert adressen til vindusprosedyre som behandler meldinger for vinduet. Når systemet skal sende en melding til vinduet, søker vindu-spesifikke informasjonen for adressen i vinduet fremgangsmåten og sender meldingen til denne prosedyren.

I underklasse er en teknikk som lar et program å fange opp og prosessen meldinger sendt eller postert til et bestemt vindu før vinduet har en sjanse til å behandle dem. Ved å delklassifisere et vindu, kan et program utfylle, endre eller overvåke virkemåten til vinduet. Et program kan underklasse et vindu som hører til en globale systemklasse, for eksempel en redigeringskontroll eller en liste. Et program kan for eksempel underklasse en redigeringskontroll for å unngå at kontrollen tillater visse tegn. Imidlertid ikke underklasse vinduet eller klassen som tilhører et annet program. Alle i underklasse må utføres i den samme prosessen.

En program-underklasser et vindu ved å erstatte adressen til vinduets opprinnelige vindusprosedyre med adressen til en ny vindusprosedyre, kalt underklasse prosedyren. Etterpå, mottar underklasse prosedyren meldinger sendt eller postert til vinduet.

Prosedyren underklasse kan ta tre handlinger ved mottak av en melding: kan det sender meldingen til den opprinnelige vindusprosedyre, endre meldingen og sende den til den opprinnelige vindusprosedyre, eller behandle meldingen og ikke sende den til den opprinnelige vindusprosedyre. Hvis underklasse fremgangsmåten, behandler en melding, kan det gjøre det før, etter, eller både før og etter den sender meldingen til den opprinnelige vindusprosedyre.

Systemet har to typer underklasse: forekomst og globale. I forekomst i underklasseerstatter et program vinduet prosedyren adressen til en enkelt forekomst av et vindu. Et program må bruke forekomst delklassifisere til underklasse et eksisterende vindu. I globale underklasseerstatter et program adressen til vindusprosedyre i WNDCLASS -strukturen i en vindusklasse. Alle påfølgende vinduer som er opprettet med klassen har adressen til prosedyren underklasse, men eksisterende windows av klassen påvirkes ikke.

Index