CallWindowProc

De functie CallWindowProc berichtinformatie wordt doorgegeven aan de procedure opgegeven venster.

LRESULT CallWindowProc) WNDPROC  lpPrevWndFunc, / / pointer naar vorige procedureHWNDhWnd, / / verwerken naar vensterUINTMsg, // messageWPARAMwParam, / / eerste bericht parameterLPARAMlParam / / tweede bericht parameter);
 

Parameters

lpPrevWndFunc
Pointer naar het vorige venster procedure.

Als deze waarde wordt verkregen door de functie GetWindowLong aanroepen met de parameter nIndex ingesteld op GWL_WNDPROC of DWL_DLGPROC, is het eigenlijk beide het adres van een venster of dialoogvenster vak procedure, of een handvat dat adres vertegenwoordigen.

hWnd
Ingang naar de venster-procedure om het bericht te ontvangen.
Msg
Hiermee geeft u het bericht.
wParam
Hiermee geeft u extra message-specifieke informatie. De inhoud van deze parameter is afhankelijk van de waarde van de parameter Msg.
lParam
Hiermee geeft u extra message-specifieke informatie. De inhoud van deze parameter is afhankelijk van de waarde van de parameter Msg.

Retourwaarden

De retourwaarde geeft het resultaat van de verwerking van berichten en hangt af van de boodschap.

Opmerkingen

De functie CallWindowProc voor venster subclassificering. Meestal, delen alle vensters met dezelfde klasse één venster procedure. Een subklasse is een venster of een set van windows met dezelfde klasse waarvan de berichten worden onderschept en verwerkt door een andere venster procedure (of procedures) voordat wordt doorgegeven aan de procedure van het venster van de klasse.

De functie SetWindowLong maakt de subklasse door het veranderen van de venster-procedure die is gekoppeld aan een bepaald venster, waardoor het systeem de nieuwe procedure van het venster in plaats van de vorige Bel. Een toepassing moet niet verwerkt door de nieuwe procedure van het venster aan de vorige venster procedure door te bellen CallWindowProcberichten doorgeven. De toepassing kan een keten van venster procedures.

Als strikt is gedefinieerd, de lpPrevWndFunc -parameter heeft het gegevenstype WNDPROC. Het type WNDPROC is als volgt gedeclareerd

LRESULT (CALLBACK * WNDPROC) (HWND, UINT, WPARAM, LPARAM) 
 

Als strikt niet is gedefinieerd, de lpPrevWndFunc -parameter heeft het gegevenstype FARPROC. Het type FARPROC is als volgt gedeclareerd

int (ver WINAPI * FARPROC)) 
 

In C, geeft de FARPROC verklaring aan een callback-functie die een lijst met niet-gespecificeerde parameters heeft. In C++, echter de parameterlijst leeg in de verklaring geeft aan dat een functie geen parameters heeft. Deze subtiele onderscheid kan breken achteloos code. Volgende is één manier om deze situatie omgaan:

ifdef strikte WNDPROC MyWindowProcedure # anders FARPROC MyWindowProcedure #endif... lResult = CallWindowProc (MyWindowProcedure,...) 
 

Voor meer informatie over functies die zijn gedeclareerd met lege argument lijsten, verwijzen naar The C++ Programming Language, tweedeeditie, door Bjarne Stroustrup.

Windows NT: De CallWindowProc functie verwerkt Unicode-naar-ANSI conversie. U profiteren niet van deze conversie als u rechtstreeks het venster procedure aanroepen.

Syntaxisinfo

nbsp; Windows &NT: versie 3.1 of hoger vereist.
Windows:Windows 95 of hoger vereist.
Windows CE:Versie 1.0 of hoger vereist.
Header:Verklaard in winuser.h.
Bibliotheek importeren:User32.lib gebruiken.
Unicode:Geïmplementeerd als Unicode en ANSI-versies van Windows NT.

Zie ook

Overzicht van de Procedures van venster, venster Procedure functies, GetWindowLong, SetClassLong, SetWindowLong

Index