Funzione CallWindowProcA (winuser.h)
Passa le informazioni sul messaggio alla routine della finestra specificata.
Sintassi
LRESULT CallWindowProcA(
[in] WNDPROC lpPrevWndFunc,
[in] HWND hWnd,
[in] UINT Msg,
[in] WPARAM wParam,
[in] LPARAM lParam
);
Parametri
[in] lpPrevWndFunc
Tipo: WNDPROC
Procedura precedente della finestra. Se questo valore viene ottenuto chiamando la funzione GetWindowLong con il parametro nIndex impostato su GWL_WNDPROC o DWL_DLGPROC, si tratta effettivamente dell'indirizzo di una routine finestra o finestra di dialogo o di un valore interno speciale significativo solo per CallWindowProc.
[in] hWnd
Tipo: HWND
Handle per la routine della finestra per ricevere il messaggio.
[in] Msg
Tipo: UINT
Messaggio.
[in] wParam
Tipo: WPARAM
Ulteriori informazioni specifiche del messaggio. Il contenuto di questo parametro dipende dal valore del parametro Msg .
[in] lParam
Tipo: LPARAM
Ulteriori informazioni specifiche del messaggio. Il contenuto di questo parametro dipende dal valore del parametro Msg .
Valore restituito
Tipo: LRESULT
Il valore restituito specifica il risultato dell'elaborazione del messaggio e dipende dal messaggio inviato.
Commenti
Usare la funzione CallWindowProc per la sottoclasse della finestra. In genere, tutte le finestre con la stessa classe condividono una sola routine finestra. Una sottoclasse è una finestra o un set di finestre con la stessa classe i cui messaggi vengono intercettati ed elaborati da un'altra routine finestra (o routine) prima di essere passata alla routine finestra della classe .
La funzione SetWindowLong crea la sottoclasse modificando la routine della finestra associata a una determinata finestra, determinando che il sistema chiami la nuova routine finestra anziché quella precedente. Un'applicazione deve passare tutti i messaggi non elaborati dalla nuova procedura della finestra alla routine della finestra precedente chiamando CallWindowProc. In questo modo l'applicazione può creare una catena di procedure finestra.
Se è definito STRICT , il parametro lpPrevWndFunc ha il tipo di dati WNDPROC. Il tipo WNDPROC viene dichiarato come segue:
LRESULT (CALLBACK* WNDPROC) (HWND, UINT, WPARAM, LPARAM);
Se STRICT non è definito, il parametro lpPrevWndFunc ha il tipo di dati FARPROC. Il tipo FARPROC viene dichiarato come segue:
int (FAR WINAPI * FARPROC) ()
In C la dichiarazione FARPROC indica una funzione di callback con un elenco di parametri non specificato. In C++, tuttavia, l'elenco di parametri vuoto nella dichiarazione indica che una funzione non ha parametri. Questa sottile distinzione può interrompere il codice senza attenzione. Di seguito è riportato un modo per gestire questa situazione:
#ifdef STRICT
WNDPROC MyWindowProcedure
#else
FARPROC MyWindowProcedure
#endif
...
lResult = CallWindowProc(MyWindowProcedure, ...) ;
Per altre informazioni sulle funzioni dichiarate con elenchi di argomenti vuoti, vedere Linguaggio di programmazione C++, Seconda edizione, di Bjarne Stroustrup.
La funzione CallWindowProc gestisce la conversione da Unicode a ANSI. Non è possibile sfruttare questa conversione se si chiama direttamente la routine della finestra.
Esempio
Per un esempio, vedere Creazione di sottoclassi di una finestra
Nota
L'intestazione winuser.h definisce CallWindowProc come alias che seleziona automaticamente la versione ANSI o Unicode di questa funzione in base alla definizione della costante del preprocessore UNICODE. La combinazione dell'utilizzo dell'alias indipendente dalla codifica con il codice che non è indipendente dalla codifica può causare mancate corrispondenze che generano errori di compilazione o di runtime. Per altre informazioni, vedere Convenzioni per i prototipi di funzioni.
Requisiti
Client minimo supportato | Windows 2000 Professional [solo app desktop] |
Server minimo supportato | Windows 2000 Server [solo app desktop] |
Piattaforma di destinazione | Windows |
Intestazione | winuser.h (include Windows.h) |
Libreria | User32.lib |
DLL | User32.dll |
Set di API | ext-ms-win-ntuser-window-l1-1-4 (introdotto in Windows 10 versione 10.0.14393) |
Vedi anche
Informazioni concettuali
Riferimento