Compartir a través de


Subclase y traducción automática de mensajes

La subclase es una técnica que permite a una aplicación interceptar y procesar los mensajes enviados o publicados en una ventana determinada antes de que un procedimiento de ventana tenga la oportunidad de procesarlos. El sistema operativo traduce automáticamente los mensajes a la página de códigos de Windows (ANSI) o al formulario Unicode , en función del formulario de la función que tenga subclases el procedimiento de ventana.

La siguiente llamada a la función SetWindowLongA subclases el procedimiento de ventana actual asociado a la ventana identificada por el parámetro hWnd . Como alternativa, una aplicación puede usar SetWindowLongPtrA. El nuevo procedimiento de ventana NewWndProc recibirá mensajes con texto en formato de página de códigos de Windows.

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

Cuando NewWndProc ha terminado de procesar un mensaje, usa la función CallWindowProc como se indica a continuación para pasar el mensaje a OldWndProc.

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

Si OldWndProc se creó con un estilo de clase UNICODE, los mensajes se traducen del formulario de página de códigos de Windows recibido por NewWndProc en Unicode.

Del mismo modo, una llamada a la función SetWindowLongW o SetWindowLongPtrW subclases el procedimiento de ventana actual con un procedimiento de ventana que espera mensajes de texto Unicode. La traducción de mensajes, si es necesario, se realiza durante el procesamiento de la función CallWindowProc .

Para obtener más información sobre las subclases, vea Procedimientos de ventana.

Usar Unicode y juegos de caracteres