Функція CallWindowProc проходить повідомлення інформації до вказаного вікно процедури.
(LRESULT CallWindowProc WNDPROC lpPrevWndFunc, / / вказівник на попередні процедуриHWNDhWnd, / / ручка вікнаUINTMsg, // messageWPARAMwParam, / / перші повідомлення параметраLPARAMlParam / / другий параметр повідомлення);
Якщо це значення виходить шляхом виклику функції GetWindowLong з параметром nIndex , GWL_WNDPROC або DWL_DLGPROC, це фактично або адресу вікна або діалоговому вікні процедури або маркер, що представляють її.
Значення, що повертається визначає результатом обробки повідомлення і залежить від повідомлення, яке надсилається.
Функція CallWindowProc використовується вікно subclassing. Як правило всі вікна з одного класу частку одного вікна процедури. Підкласу це вікно або набір вікон з одного класу, чиї повідомлення перехоплення і обробляється іншого вікна процедури (або процедур) перед передаються до вікна процедури класу.
Функція SetWindowLong створює на підкласу змінюючи вікна процедури, пов'язані з конкретного вікна, викликаючи системи називати нову процедуру вікна замість того, щоб попередня. Програма має пройти будь-які повідомлення, що не обробляється нова процедура вікно до попереднього вікна процедури за номером CallWindowProc. Це дозволяє застосовувати для створення ланцюжка вікно процедур.
Якщо визначено СТРОГИЙ lpPrevWndFunc параметр має тип даних WNDPROC. WNDPROC тип заявив наступне
LRESULT (ЗВОРОТНОГО ВИКЛИКУ * WNDPROC) (HWND, UINT, WPARAM, LPARAM)
Якщо СТРОГИЙ не визначено, lpPrevWndFunc параметр має тип даних FARPROC. FARPROC тип заявив наступне
int (далеко WINAPI * FARPROC))
У C FARPROC декларації вказує функцію зворотного виклику, який має список не вказано параметр. У c + + Однак, список пусту параметрів у декларації вказує, що функція має без параметрів. Це тонкі відмінності можна розірвати недбале код. Нижче наводиться один спосіб справитися з цією ситуацією:
#IFDEF СУВОРОГО WNDPROC MyWindowProcedure # MyWindowProcedure інше FARPROC #endif... lResult = CallWindowProc (MyWindowProcedure,...)
Докладніші відомості про функції, оголошені пустий аргумент списків зверніться до мови програмування C++, друге видання, на Bjarne Stroustrup.
Windows NT: CallWindowProc функція ручками Unicode-ANSI перетворення. Ви не зможете скористатися цього перетворення якщо назвати вікно процедура безпосередньо.
nbsp; Windows &NT: вимагає 3.1 або пізнішої версії.
Windows:Вимагає Windows 95 або пізнішої версії.
Windows CE:Потрібна Версія 1.0 або пізнішу версію.
Заголовка:Оголошена в winuser.h.
Імпортувати бібліотеки:Використання user32.lib.
Юнікод:Реалізований у вигляді Юнікод і ANSI версії на Windows NT.
Огляд вікна процедур, процедура функції вікон, GetWindowLong, SetClassLong, SetWindowLong