CallWindowProc

La funzione CallWindowProc passa le informazioni del messaggio alla procedura di finestra specificata.

(LRESULT CallWindowProc Metodo WNDPROC  lpPrevWndFunc, / / puntatore alla procedura precedenteHWNDhWnd, / / handle alla finestraUINTMsg, // messageWPARAMwParam, / / messaggio primo parametroLPARAMlParam / / secondo parametro message);
 

Parametri

lpPrevWndFunc
Puntatore a una routine di finestra precedente.

Se questo valore è ottenuto chiamando la funzione GetWindowLong con il parametro nIndex impostato su GWL_WNDPROC o DWL_DLGPROC, è in realtà sia l'indirizzo di una finestra o una finestra di dialogo casella routine, o una maniglia che rappresenta quell'indirizzo.

hWnd
Gestire la routine di finestra per ricevere il messaggio.
Msg
Specifica il messaggio.
wParam
Specifica le informazioni aggiuntive specifiche del messaggio. Il contenuto di questo parametro dipende dal valore del parametro Msg.
lParam
Specifica le informazioni aggiuntive specifiche del messaggio. Il contenuto di questo parametro dipende dal valore del parametro Msg.

Valori restituiti

Il valore restituito specifica il risultato dell'elaborazione del messaggio e dipende il messaggio inviato.

Osservazioni

Utilizzare la funzione CallWindowProc per la creazione di sottoclassi finestra. Di solito tutte le finestre con la stessa classe di condividono una routine di finestra. Una sottoclasse è una finestra o un insieme di finestre con la stessa classe i cui messaggi sono intercettati e trattati da un'altra routine della finestra (o procedure) prima di essere passato per la routine della finestra della classe.

La funzione SetWindowLong crea la sottoclasse modificando la routine di finestra associata una particolare finestra, causando il sistema chiamare la nuova procedura di finestra invece di quello precedente. Un'applicazione deve passare eventuali messaggi non elaborati dalla nuova procedura di finestra precedente routine di finestra chiamando CallWindowProc. Ciò consente all'applicazione di creare una catena di procedure di finestra.

STRICT è definito, il parametro lpPrevWndFunc ha i tipo di dati WNDPROC. Il tipo WNDPROC viene dichiarato come segue

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

Se non viene definito STRICT, il parametro lpPrevWndFunc ha i tipo di dati FARPROC. Il tipo FARPROC viene dichiarato come segue

int (lontano WINAPI * FARPROC)) 
 

In C, la dichiarazione di FARPROC indica una funzione di callback che dispone di un elenco di parametri non specificato. In C++, tuttavia, l'elenco dei parametri vuoti nella dichiarazione indica che una funzione non ha parametri. Questa distinzione sottile può rompere il codice disattento. Di seguito è riportato un modo per gestire questa situazione:

# ifdef STRICT WNDPROC MyWindowProcedure # MyWindowProcedure FARPROC altro... # endif lResult = CallWindowProc (MyWindowProcedure,...) 
 

Per ulteriori informazioni sulle funzioni dichiarate con elenchi di argomenti vuoti, riferimento per il linguaggio di programmazione C++, seconda edizione, da Bjarne Stroustrup.

Windows NT: La funzione CallWindowProc gestisce la conversione ad ANSI e Unicode. Si non può trarre vantaggio di questa conversione, se si chiama la routine della finestra direttamente.

Descrizione

nbsp; Windows &NT: richiede 3.1 o versione successiva.
Windows:Richiede Windows 95 o versioni successive.
Windows CE:Richiede la versione 1.0 o successiva.
Intestazione:Dichiarati in winuser.
Importare librerie:Utilizzare user32.lib.
Unicode:Implementato come versioni Unicode e ANSI su Windows NT.

Vedi anche

Finestra panoramica delle procedure, funzioni di routine di finestra, GetWindowLong, SetClassLong, SetWindowLong

Rimedio: Inserire il CD-ROM CD di MSDN Library.

Index