CallWindowProc

Die CallWindowProc -Funktion übergibt Informationen an die Fensterprozedur angegebenen.

LRESULT CallWindowProc) WNDPROC  LpPrevWndFunc, / / Zeiger auf vorherigen VerfahrenHWNDhWnd, / / handle zum FensterUINTMsg, // messageWPARAMwParam, / / erste message ParameterLPARAMlParam / / zweite Nachrichtenparameter);
 

Parameter

lpPrevWndFunc
Zeiger auf die vorherigen Fensterprozedur.

Wenn dieser Wert durch Aufrufen der GetWindowLong -Funktion mit dem Parameter nIndex GWL_WNDPROC oder DWL_DLGPROC ermittelt wird, ist es tatsächlich entweder die Adresse des ein Fenster oder Dialogfeld Feld Verfahren oder ein Handle darstellt, dass Adresse.

hWnd
Behandeln Sie, um die Fensterprozedur die Nachricht empfangen.
Msg
Gibt die Meldung.
wParam
Gibt zusätzliche Message-spezifische Informationen. Der Inhalt dieses Parameters hängt der Wert des Parameters Msg.
lParam
Gibt zusätzliche Message-spezifische Informationen. Der Inhalt dieses Parameters hängt der Wert des Parameters Msg.

Rückgabewerte

Der Rückgabewert gibt das Ergebnis der Nachrichtenverarbeitung und hängt von der gesendeten Nachricht.

Bemerkungen

Verwenden Sie die CallWindowProc -Funktion für das Erstellen von Unterklassen Fenster. In der Regel, teilen alle Fenster mit derselben Klasse einer Fensterprozedur. Eine Unterklasse ist ein Fenster oder einen Satz von Windows mit der gleichen Klasse, deren Nachrichten abgefangen und durch eine andere Fensterprozedur (oder Verfahren) vor der Übergabe an die Fensterprozedur der Klasse verarbeitet werden.

Die SetWindowLong Funktion erstellt die Unterklasse durch Ändern der Fensterprozedur, die ein bestimmtes Fenster, dass das System die neue Fensterprozedur statt der vorherigen Aufrufen zugeordnet. Eine Anwendung muss nicht durch die neue Fensterprozedur an die vorherigen Fensterprozedur durch Aufrufen von CallWindowProcverarbeitet Nachrichten übergeben. Dies ermöglicht der Anwendung, erstellen Sie eine Kette von Fensterprozeduren.

Wenn streng definiert ist, hat der LpPrevWndFunc -Parameter den Datentyp WNDPROC. Der WNDPROC -Typ ist wie folgt deklariert.

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

 

Wenn nicht streng definiert ist, hat der LpPrevWndFunc -Parameter den Datentyp FARPROC. Der FARPROC -Typ ist wie folgt deklariert.

int (weit WINAPI * FARPROC)) 

 

In c gibt die FARPROC -Deklaration eine Callback-Funktion, die eine Unbekannter Parameterliste hat. In C++ gibt jedoch die leere Parameterliste in der Erklärung, dass eine Funktion keine Parameter hat. Diese subtile Unterscheidung kann sorglos Code brechen. Es folgt ein Weg, um diese Situation zu bewältigen:

# ifdef strenge WNDPROC MyWindowProcedure # sonst FARPROC MyWindowProcedure... # endif lResult = CallWindowProc (MyWindowProcedure,...) 

 

Weitere Informationen über Funktionen mit leeren Argumentlisten deklariert finden Sie unter The C++ Programming Language, Second Edition, von Bjarne Stroustrup.

Windows NT: Die CallWindowProc -Funktion verarbeitet Unicode-ANSI-Konvertierung. Sie können nicht diese Konvertierung nutzen wenn Sie die Fensterprozedur direkt aufrufen.

QuickInfo

&Nbsp; Windows NT: Version 3.1 oder höher erforderlich.
Windows:Erfordert Windows 95 oder höher.
Windows CE:Version 1.0 oder höher benötigt.
Header:In winuser.h deklarierten.
Importieren Bibliothek:Verwenden Sie user32.lib.
Unicode:Als Unicode und ANSI-Versionen unter Windows NT implementiert.

Siehe auch

Prozedurenübersicht Fenster, Fensterfunktionen GetWindowLong, SetClassLong, SetWindowLong

Index