CallWindowProc

Funcția CallWindowProc trece mesajului informații la procedura specificată fereastra.

(LRESULT CallWindowProc WNDPROC  lpPrevWndFunc, / / cursorul în procedura precedentăHWNDhWnd, / / ocupa fereastraUINTMsg, // messageWPARAMwParam, / / primul mesaj parametruLPARAMlParam / / al doilea parametru mesaj);
 

Parametrii

lpPrevWndFunc
Cursorul în procedura anterioară fereastra.

În cazul în care această valoare se ob?ine prin apel funcția GetWindowLong cu parametrul nIndex setat la GWL_WNDPROC sau DWL_DLGPROC, este de fapt fie adresa o fereastră sau procedura de caseta de dialog sau un mâner care reprezintă acea adresă.

hWnd
Mâner pentru fereastra procedura pentru a primi mesajul.
Msg
Specifică mesajul.
wParam
Specifică informa?ii suplimentare specifice mesaj. Conținutul de acest parametru depinde de valoarea parametrului Msg.
lParam
Specifică informa?ii suplimentare specifice mesaj. Conținutul de acest parametru depinde de valoarea parametrului Msg.

Valorile întroarse

Valoarea returnată specifică rezultatul prelucrării mesaj și depinde de mesaj trimis.

Observații

Utilizați funcția CallWindowProc pentru fereastra subclassing. De obicei, toate ferestrele cu aceea?i clasă partaja o fereastră procedura. O subclasă este o fereastră sau un set de windows cu aceea?i clasă ale căror mesaje sunt interceptate și prelucrate de către un alt regim de fereastra (sau procedurile) înainte de a fi trecut la procedura fereastra de clasa.

Funcția SetWindowLong creează subclasă prin modificarea procedurii fereastra asociată cu o fereastră special, cauzând sistemul pentru a apela Noua procedură fereastra în locul celei precedente. Cererea trebuie să treacă orice mesaje nu prelucrate de către Noua procedură fereastra la procedura precedentă fereastra prin apelarea CallWindowProc. Acest lucru permite aplicarea pentru a crea un lan? de fereastra procedurile.

Dacă STRICT este definit, parametrul lpPrevWndFunc a datelor de tip WNDPROC. Tipul de WNDPROC este declarat după cum urmează

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

 

Dacă nu este definit STRICT, parametrul lpPrevWndFunc a datelor de tip FARPROC. Tipul de FARPROC este declarat după cum urmează

int (departe WINAPI * FARPROC)) 

 

În C, declarația FARPROC indică o funcție de apel invers, care are o listă de parametri nespecificată. În C++, cu toate acestea, lista parametru gol în declara?ia indică că o funcție are parametri nu. Această distincție subtilă pot sparge codul neglijent. Este o modalitate de a ocupa această situație:

#ifdef stricte WNDPROC MyWindowProcedure # altceva FARPROC MyWindowProcedure #endif... lResult = CallWindowProc (MyWindowProcedure,...) 

 

Pentru informații suplimentare despre funcțiile declarate cu liste argument goale, se referă la limbajul de programare C++, a doua edi?ie, de Bjarne Stroustrup.

Windows NT: Funcția CallWindowProc mânere conversie Unicod la ANSI. Tu nu poate profita de această conversie dacă procedura fereastra direct.

QuickInfo

nbsp; Windows &NT: necesită versiunea 3.1 sau mai târziu.
Windows:Necesită Windows 95 sau o versiune ulterioară.
Windows CE:Necesită versiunea 1.0 sau mai târziu.
Antet:A declarat în winuser.h.
Import Biblioteca:Utilizarea user32.lib.
Unicode:Pus în aplicare ca Unicode și ANSI versiuni Windows NT.

A se vedea, de asemenea

Fereastra Prezentare generală a procedurilor, fereastra procedură funcții, GetWindowLong, SetClassLong, SetWindowLong

Index