O CallWindowProc função passa informações mensagem para o procedimento janela especificada.
(LRESULT CallWindowProc WNDPROC lpPrevWndFunc, / / ponteiro para procedimento anteriorHWNDhWnd, / / identificador para janelaUINTMsg, // messageWPARAMwParam, / / primeiro parâmetro da mensagemLPARAMlParam / / segundo parâmetro message);
Esse valor é obtido por chamado a GetWindowLong função com o nÍndice parâmetro definido como GWL_WNDPROC ou DWL_DLGPROC, se realmente quer o endereço de uma janela ou procedimento caixa de diálogo, ou um identificador que representa esse endereço.
O valor de retorno especifica o resultado do processamento da mensagem e depende de mensagem enviada.
Use o CallWindowProc função para a subclassificação de janela. Geralmente, todas as janelas com a mesma classe compartilham um procedimento de janela. Uma subclasse é uma janela ou conjunto de windows com a mesma classe cujas mensagens são interceptadas e processadas por outro procedimento de janela (ou procedimentos) antes de ser passado para o procedimento janela da classe.
O SetWindowLong função cria a subclasse por alterando o procedimento janela associado com uma janela específica, fazendo com que o sistema para chamar o procedimento nova janela instead of anterior. Um aplicativo deve transmitir qualquer mensagem não processada pelo novo procedimento de janela para o procedimento janela anterior por chamado CallWindowProc. Isso permite que o aplicativo para criar uma Cadeia de procedimentos de janela.
Se STRICT for definida, a lpPrevWndFunc parâmetro tem os tipo de dados WNDPROC. O WNDPROC tipo é declarado da seguinte maneira
LRESULT (RETORNO DE CHAMADA WNDPROC) (HWND, UINT, WPARAM, LPARAM)
Se STRICT não for definida, a lpPrevWndFunc parâmetro tem os tipo de dados FARPROC. O FARPROC tipo é declarado da seguinte maneira
int (até agora WINAPI * FARPROC))
Em C, a FARPROC declaração indica uma função de retorno de chamada que possui uma lista de parâmetro não especificado. No C++, no entanto, a lista de parâmetros vazia na declaração indica que uma função não tem parâmetros. Esta distinção sutil pode quebrar código descuidado. A seguir é uma maneira de lidar com essa situação:
# ifdef ESTRITO WNDPROC MyWindowProcedure # else FARPROC MyWindowProcedure... # endif lResult = CallWindowProc (MyWindowProcedure,...)
Para obter mais informações sobre funções declaradas com listas de argumentos vazios, referir-se a The C++ Programming Language, Second Edition, por Bjarne Stroustrup.
Windows NT: O CallWindowProc função manipula conversão de Unicode para ANSI. Você não pode tirar proveito dessa conversão se você chamar o procedimento janela diretamente.
nbsp; Windows &NT: requer a versão 3.1 ou posterior.
Windows:Requer o Windows 95 ou posterior.
Windows CE:Requer versão 1.0 ou posterior.
Cabeçalho:Declarado em WinUser. h.
Biblioteca de importação:Use user32.lib.
Unicode:Implementado como versões Unicode e ANSI no Windows NT.
Visão geral de procedimentos de janela, janela procedimento funções, GetWindowLong, SetClassLong, SetWindowLong