Subclasse e Tradução Automática de Mensagens

A subclasse é uma técnica que permite que um aplicativo intercepte e processe mensagens enviadas ou postadas em uma janela específica antes que um procedimento de janela tenha a chance de processá-las. O sistema operacional converte automaticamente mensagens na página de código do Windows (ANSI) ou no formulário Unicode , dependendo da forma da função que subclasse o procedimento de janela.

A chamada a seguir para a função SetWindowLongA subclasse o procedimento de janela atual associado à janela identificada pelo parâmetro hWnd . Como alternativa, um aplicativo pode usar SetWindowLongPtrA. O novo procedimento de janela NewWndProc receberá mensagens com texto no formato de página de código do Windows.

OldWndProc = (WNDPROC) SetWindowLongA(hWnd,
             GWL_WNDPROC, (LONG)NewWndProc); 

Quando NewWndProc terminar de processar uma mensagem, ele usará a função CallWindowProc da seguinte maneira para passar a mensagem para OldWndProc.

CallWindowProc(OldWndProc, hWnd, uMessage, wParam, lParam);

Se OldWndProc tiver sido criado com um estilo de classe UNICODE, as mensagens serão convertidas do formulário de página de código do Windows recebido por NewWndProc em Unicode.

Da mesma forma, uma chamada para a função SetWindowLongW ou SetWindowLongPtrW subclasse o procedimento de janela atual com um procedimento de janela que espera mensagens de texto Unicode. A tradução de mensagens, se necessário, é executada durante o processamento da função CallWindowProc .

Para obter mais informações sobre subclasse, consulte Procedimentos de janela.

Usando Conjuntos de Caracteres e Unicode