Subclassed kombinasjonsbokser

I underklasse er en prosedyre som gjør at et program til skjæringspunkt og prosessen meldinger sendt eller postert til et vindu. Ved hjelp av underklasse, kan et program erstatte sin egen behandling for visse meldinger, mens de fleste meldingen behandling til klassen definert vindusprosedyre.

Når operativsystemet oppretter et vindu, lagres informasjonen om det i en intern datastruktur som inneholder adressen til vinduet prosedyren. Til underklasse et vindu kaller et program funksjonen SetClassLong å erstatte adressen til denne prosedyren med forekomst adressen til en programdefinert underklasse prosedyren. Etterpå, sendes alle meldinger til vinduet til prosedyren underklasse. Denne fremgangsmåten bruker deretter funksjonen CallWindowProc skjedde ubehandlet meldinger til den opprinnelige vinduet prosedyren. En beskrivelse av meldingsbehandlingen utført av vindusprosedyre for COMBOBOX-klassen, kan du se Standard Combo boksen oppførselen.

Når kombinasjonsboksen er utenfor en dialogboks, kan ikke et program behandle kategorien angir du, og unnslippe nøkler, med mindre den bruker en underklasse prosedyre. Når en enkel eller miste-ned kombinasjonsboks mottar inndata fokus, setter det umiddelbart fokus til sin underordnede edit-kontrollen. Derfor må et program underklasse redigeringskontrollen å snappe tastaturinndata til en enkel eller miste-ned kombinasjonsboks. Et eksempel på dette, kan du se delklassifisere en kombinasjonsboks.

Hvis en underklasse fremgangsmåten, behandler den WM_PAINT -meldingen, må den bruke den BeginPaint -funksjonen til å forberede seg for maling. Tilgjengelig før den EndPaint funksjon, den sender håndtaket enhetskontekst (DC) som parameteren wParam fremgangsmåten for vinduet. Hvis EndPaint er kalt først, gjør vindusprosedyre klasse ingen male fordi EndPaint validerer hele vinduet.

En teknikk som er relatert til underklasse er superclassing. En superklasse ligner noen annen klasse, bortsett fra at dens vindusprosedyre ikke kaller DefWindowProc å håndtere ubehandlet meldinger. I stedet, den sender ubehandlet meldinger til vinduet fremgangsmåten for den overordnede Vindusklassen. Følg retningslinjene i Vinduet prosedyrer for å unngå problemer som kan oppstå med underklasse og superclassing.

Index