Sous-classe et traduction automatique des messages
La sous-classe est une technique qui permet à une application d’intercepter et de traiter les messages envoyés ou publiés dans une fenêtre particulière avant qu’une procédure de fenêtre ait la possibilité de les traiter. Le système d’exploitation convertit automatiquement les messages en page de code Windows (ANSI) ou au format Unicode , en fonction de la forme de la fonction qui a sous-classé la procédure de fenêtre.
L’appel suivant à la fonction SetWindowLongA sous-classe la procédure de fenêtre actuelle associée à la fenêtre identifiée par le paramètre hWnd . Une application peut également utiliser SetWindowLongPtrA. La nouvelle procédure de fenêtre NewWndProc, reçoit des messages avec du texte au format de page de code Windows.
OldWndProc = (WNDPROC) SetWindowLongA(hWnd,
GWL_WNDPROC, (LONG)NewWndProc);
Lorsque NewWndProc a terminé le traitement d’un message, il utilise la fonction CallWindowProc comme suit pour passer le message à OldWndProc.
CallWindowProc(OldWndProc, hWnd, uMessage, wParam, lParam);
Si OldWndProc a été créé avec un style de classe UNICODE, les messages sont traduits à partir du formulaire de page de code Windows reçu par NewWndProc en Unicode.
De même, un appel à la fonction SetWindowLongW ou SetWindowLongPtrW sous-classe la procédure de fenêtre actuelle avec une procédure de fenêtre qui attend des messages texte Unicode. La traduction de message, si nécessaire, est effectuée pendant le traitement de la fonction CallWindowProc .
Pour plus d’informations sur la sous-classe, consultez Procédures de fenêtre.
Rubriques connexes