Функція CallWindowProc

ФункціяCallWindowProcпередає інформацію повідомлення процедурі заданого вікна.

WNDPROClpPrevWndFunc, // покажчик на попередню процедуру

HWNDhWnd, // дескриптор вікна

UINTMsg, // повідомлення

WPARAMwParam // перший параметр повідомлення

LPARAMlParam // другий параметр повідомлення

[in] Дескриптор віконної процедури, яка приймає повідомлення.

[in] Визначає повідомлення.

[in] Визначає додаткову інформацію, що конкретизує повідомлення. Зміст цього параметра залежить від значенняMsg.

[in] Визначає додаткову інформацію, що конкретизує повідомлення. Зміст цього параметра залежить від значенняMsg.

Величина значення, що повертається визначає результат обробки повідомлення і залежить від переданого повідомлення.

Використовуйте функціюCallWindowProcдля поділу на підкласи вікна. Зазвичай, всі вікна з тим самим класом спільно використовують одну віконну процедуру. Підклас - це вікно або набір вікон з тим самим класом, повідомлення яких перехоплюються і обробляються іншою віконною процедурою (або процедурами) перед тим, як бути посланими у віконну процедуру класу.

ФункціяSetWindowLongстворює підклас, замінюючи віконну процедуру, пов'язану з конкретним вікном, змушуючи систему викликати нову віконну процедуру замість попередньої. Прикладна програма повинна надсилати будь-які повідомлення, не оброблені новою віконною процедурою в попередню віконну процедуру шляхом викликуCallWindowProc. Це дозволяє застосуванню створювати ланцюжок віконних процедур.

Якщо в програмі визначено режим перевірки типівSTRICT, параметрlpPrevWndFuncмає тип данихWNDPROC. ТипWNDPROCоголошується так:

ЯкщоSTRICTне встановлено, параметрlpPrevWndFuncмає тип данихFARPROC. ТипFARPROCоголошується, як зазначено нижче:

За подальшою інформацією щодо функцій, оголошених з порожніми списками параметрів, зверніться доМова програмування C++, Другого Видання, Bjarne Stroustrup.

ФункціяCallWindowProcобробляє перетворенняUnicode-в-ANSI. Ви не отримаєте перетворення, якщо викликаєте віконну процедуру безпосередньо.

ФункціяCallWindowProcWпідтримуєMicrosoft ® Layer for Unicode(MSLU). До того ж, версіяANSIпідтримується, щоб забезпечувати більш узгоджену поведінку всіх операційних системWindows ® Microsoft. Щоб використовувати це, Ви повинні додати деякі файли до вашої програми, як викладено вMicrosoft Layer for Unicodeдля Windows 95/98/Me.

Розміщення та сумісність CallWindowProc