Condividi tramite


Sottoclasse e traduzione automatica dei messaggi

La sottoclasse è una tecnica che consente a un'applicazione di intercettare ed elaborare i messaggi inviati o inviati a una determinata finestra prima che una routine finestra abbia la possibilità di elaborarli. Il sistema operativo converte automaticamente i messaggi in tabella codici di Windows (ANSI) o modulo Unicode, a seconda del formato della funzione che ha sottoclassato la routine della finestra.

La chiamata seguente alla funzione SetWindowLongA sottoclasse la routine finestra corrente associata alla finestra identificata dal parametro hWnd. In alternativa, un'applicazione può usare SetWindowLongPtrA. La nuova procedura della finestra NewWndProcriceverà messaggi con testo in formato della pagina codici di Windows.

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

Quando NewWndProc ha terminato l'elaborazione di un messaggio, usa la funzioneCallWindowProccome indicato di seguito per passare il messaggio a OldWndProc.

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

Se OldWndProc è stato creato con uno stile di classe UNICODE, i messaggi vengono tradotti dal modulo ricevuto nella pagina codice di Windows da NewWndProc in Unicode.

Analogamente, una chiamata alla funzione SetWindowLongW o SetWindowLongPtrW sottoclassa la procedura finestra corrente con una procedura finestra che prevede messaggi di testo Unicode. Se necessario, la traduzione dei messaggi viene eseguita durante l'elaborazione della funzioneCallWindowProc.

Per altre informazioni sulla sottoclasse, vedere Window Procedures.

utilizzo di Unicode e set di caratteri