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 Windows (ANSI) o in formato Unicode , a seconda del formato della funzione che ha sottoclassato la routine della finestra.

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

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

Quando NewWndProc ha completato l'elaborazione di un messaggio, usa la funzione CallWindowProc come 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 convertiti dal modulo della tabella codici di Windows ricevuto da NewWndProc in Unicode.

Analogamente, una chiamata alla funzione SetWindowLongW o SetWindowLongPtrW sottoclasse la routine della finestra corrente con una routine finestra che prevede messaggi di testo Unicode. La conversione dei messaggi, se necessario, viene eseguita durante l'elaborazione della funzione CallWindowProc .

Per altre informazioni sulla sottoclasse, vedere Window Procedures.

Uso di set di caratteri e Unicode