CallWindowProc

Funksjonen CallWindowProc sender meldingsinformasjon til den angitte vindusprosedyre.

() Ikke hente LRESULT CallWindowProc WNDPROC  lpPrevWndFunc, / / peker til forrige prosedyreHWNDhWnd, / / håndtere til vinduetUINTMsg, // messageWPARAMwParam, / / message først parameterenLPARAMlParam / / sekund message-parameter);
 

Parametere

lpPrevWndFunc
Pekeren til den forrige prosedyren for vindu.

Hvis denne verdien hentes ved å kalle funksjonen GetWindowLong med nIndex -parameteren angitt til GWL_WNDPROC eller DWL_DLGPROC, er det faktisk enten adressen til et vindu, eller dialogboksen boksen prosedyre, eller en referanse som representerer denne adressen.

hWnd
Håndtere i vinduet prosedyren for å motta meldingen.
Msg
Angir meldingen.
wParam
Angir tilleggsinformasjon message-spesifikke. Innholdet i denne parameteren avhenger av verdien for parameteren Msg.
lParam
Angir tilleggsinformasjon message-spesifikke. Innholdet i denne parameteren avhenger av verdien for parameteren Msg.

Returverdier

Returverdien angir et resultat av behandling av meldingen, og avhenger av meldingen som er sendt.

Merknader

Bruk CallWindowProc -funksjonen for vinduet i underklasse. Vanligvis dele alle vinduer med samme klasse én vindusprosedyre. En underklasse er et vindu eller et sett med Vinduer med samme klasse får meldinger er fanget opp og behandlet av en annen vindusprosedyre for (eller prosedyrer) før de sendes til prosedyren vinduet klassen.

Funksjonen SetWindowLong oppretter underklassen ved å endre vindusprosedyre som er forbundet med et bestemt vindu, noe som gjør systemet kalle den nye vinduet prosedyren i stedet for den tidligere. Et program må passere noen meldinger som ikke er behandlet av nye vinduet til den forrige prosedyren i vinduet, ved å kalle CallWindowProc. Dette gjør at programmet til å opprette en kjede av vinduet prosedyrer.

Hvis strengt er definert, lpPrevWndFunc parameteren har datatypen WNDPROC. WNDPROC -typen er deklarert som følger

IKKE HENTE LRESULT (TILBAKERINGING * WNDPROC) (HWND, UINT, WPARAM, LPARAM) 

 

Hvis strengt ikke er definert, lpPrevWndFunc parameteren har datatypen FARPROC. FARPROC -typen er deklarert som følger

int (langt WINAPI * FARPROC)) 

 

I c angir den FARPROC erklæringen en tilbakeringingsfunksjonen som har en uspesifisert parameterliste. I C++, men angir listen tom parameter i erklæringen at en funksjon har ingen parametere. Denne subtile forskjellen kan bryte uforsiktig koden. Følgende er en måte å håndtere denne situasjonen:

#ifdef strenge WNDPROC MyWindowProcedure # annet FARPROC MyWindowProcedure #endif... ikke hente lResult = CallWindowProc (MyWindowProcedure,...) 

 

Hvis du vil ha mer informasjon om funksjoner som er deklarert med tomme argumentlister, kan du se The c ++ programmeringsspråk, andre utgave av Bjarne Stroustrup.

Windows NT: Funksjonen CallWindowProc håndterer Unicode til ANSI-konvertering. Du kan ikke dra nytte av denne konverteringen Hvis du kaller prosedyren vinduet direkte.

Hurtiginformasjon

nbsp; Windows &NT: krever versjon 3.1 eller senere.
Windows:Krever Windows 95 eller senere.
Windows CE:Krever versjon 1.0 eller senere.
Topptekst:Deklarert i winuser.h.
Importere biblioteket:Bruk user32.lib.
Unicode:Implementert som Unicode- og ANSI-versjoner på Windows NT.

Se også

Vinduet prosedyrer oversikt, vinduet prosedyren funksjoner, GetWindowLong, SetClassLong, SetWindowLong

Index