CallWindowProc

CallWindowProc функция передает сообщение информацию в процедуру указанного окна.

() LRESULT CallWindowProc WNDPROC  lpPrevWndFunc, / / указатель предыдущей процедуреHWNDhWnd, / / дескриптор окнаUINTMSG, // messageWPARAMwParam, / / сначала сообщение параметрLPARAMlParam / / второй параметр message);
 

Параметры

lpPrevWndFunc
Указатель на предыдущей процедуре окна.

Если это значение получается путем вызова функции GetWindowLong с параметром nIndex , GWL_WNDPROC или DWL_DLGPROC, это на самом деле либо адрес процедуру диалогового окна или окна, или маркер, представляющий этот адрес.

hWnd
Обрабатывать в процедуру окна для получения сообщения.
MSG
Указывает, что сообщение.
wParam
Задает дополнительные сведения, сообщения. Содержимое этого параметра зависит от значения параметра Msg.
lParam
Задает дополнительные сведения, сообщения. Содержимое этого параметра зависит от значения параметра Msg.

Возвращаемые значения

Возвращаемое значение указывает результат обработки сообщений и зависит это сообщение отправлено.

Примечания

Используйте функцию CallWindowProc для окон подклассы. Обычно все окна с того же класса разделяют одну оконную процедуру. Подкласс — это окно или набор окон с того же класса, чьи сообщения перехвачены и обработаны другой процедуре окна (или процедуры) перед передачей в процедуру окна класса.

Функция SetWindowLong создает подкласс, изменив процедуру окна, связанный с конкретной окном, вызывая системы для вызова новой процедуре окна вместо предыдущего. Приложение должно пройти все сообщения по процедуре окна предыдущей процедурой окна не обрабатывается путем вызова CallWindowProc. Это позволяет приложению создать цепь окна процедур.

Если определен STRICT, параметр lpPrevWndFunc имеет тип данных WNDPROC. Тип WNDPROC объявляется следующим

LRESULT (ОБРАТНОГО ВЫЗОВА * WNDPROC) (HWND, UINT, WPARAM, LPARAM) 
 

Если STRICT не задан, параметр lpPrevWndFunc имеет тип данных FARPROC. FARPROC тип объявляется следующим

int (далеко WINAPI * FARPROC)) 
 

В C FARPROC Декларация указывает функцию обратного вызова, которая имеет список неуказанных параметров. В C++ однако список пустой параметров в Декларации указывает, что функция не имеет параметров. Это тонкое различие может нарушить неосторожного кода. Ниже приводится один из способов для обработки этой ситуации:

# ifdef СТРОГОЙ WNDPROC MyWindowProcedure # else FARPROC MyWindowProcedure... # endif lResult = CallWindowProc (MyWindowProcedure,...) 
 

Дополнительную информацию о функциях, объявленные с пустыми аргументов списки ссылаются на языке программирования C++, второе издание, с Бьерном Страуструпом.

Windows NT: CallWindowProc функция обрабатывает преобразование Юникод в ANSI. Если напрямую вызвать процедуру окна не могут воспользоваться преимуществами данного преобразования.

QuickInfo

nbsp; Windows &NT: требует версии 3.1 или более поздней версии.
Windows:Требует Windows 95 или более поздней версии.
Windows CE:Требует версии 1.0 или более поздней версии.
Заголовок:Объявленные в winuser.h.
Импорта библиотеки:Используйте user32.lib.
Юникод:В версии Юникода и ANSI в Windows NT.

Родственные слова

Обзор процедуры окна, функции процедуру окна, GetWindowLong, SetClassLong, SetWindowLong

Index