Underklassificering

Underklassificering er processen  tilsidesætte en vinduesprocedure, som Windows tildeler som standard.

Formål med teknologi

Denne teknologi bruges, hvis det er nødvendigt for at give vinduet en specifik reaktion på en Windows-meddelelse. Ved hjælp af underklassificering kan du organisere inputkontrol og blokere lukningen af ​​vinduet. Generelt er det vigtigste her, at programmøren om nødvendigt har fuld kontrol over vinduets opførsel.

Fordele ved underklassificering

Windows har et ret rigt udvalg af kontroller, men du kan komme i en situation, hvor du skal tilpasse en kontrols adfærd. Og der er en komplikation her: den procedure, som Windows tildeler en kontrol, kan ikke i sig selv ændres. Der er to måder:

Ulemperne ved den første tilgang er, at programmøren faktisk er tvunget til at "genopfinde hjulet" igen. Fordelen ved underklassificering er imidlertid, at det giver programmøren mulighed for kun at fokusere på de Windows-meddelelser, han virkelig har brug for, og videregive resten til standardvindueproceduren.

Sådan fungerer underklassificering

Princippet for dets drift er ret simpelt: Når du opretter et vindue, skriver Windows adressen på behandlerproceduren [1] i feltet lpfnWndProc i vinduesklassen WNDCLASSEX . Windows giver programmøren SetWindowLong- funktionen , som kan ændre forskellige felter i klassen, inklusive adressen på behandleren. Samtidig forsvinder standardvindueproceduren ikke nogen steder, dens adresse er indeholdt i defwindowproc- feltet , og hvis vores vinduesprocedure modtager en vinduesmeddelelse, der ikke kræver programmørintervention for dens behandling, så sender vores vinduesprocedure den til standard vinduesprocedure.

Underklassificeringsrestriktioner

Problemer ved brug af denne teknologi vil opstå, hvis applikationen er programmeret ved hjælp af VCL , OWL eller MFC . Dette skyldes den rækkefølge, som Windows-meddelelser håndteres i i disse biblioteker [2] .

Se også

Noter

  1. Bemærk, at en vinduesklasse IKKE er en klasse i OOP-forstand.
  2. Meddelelsesmetoder eller meddelelseshåndtering efter klasser . Dato for adgang: 27. juli 2010. Arkiveret fra originalen 15. december 2010.

Links