Bonjour,
J'ai un problème avec un projet dans lequel je mixe des chaines de caractères Unicode et ANSI.
Ce projet vient d'être porté de VC6 vers VC8.
J'essaie d'afficher une chaine de caractères Unicode dans un contrôle CStatic d'une CDialog, sans avoir défini les constantes _UNICODE et UNICODE :
Dans un projet de test, lui aussi porté de VC6 vers VC8, il n'y a aucun soucis. Je passe une chaine de caractères chinois à SetDlgItemTextW, et la vois bien s'afficher sur le CStatic. (Pas de définition de _UNICODE et UNICODE ici non plus).
Code : Sélectionner tout - Visualiser dans une fenêtre à part SetDlgItemTextW(this->m_hWnd, IDC_STATIC_WEBSITE,szBuf);
1ère piste :
Je suppose que la création de CDialog et de n'importe quel contrôle avec les MFC fait appel "dans la cave" à CreateWindowEx. Je suppose aussi que pour afficher des caractères unicode sur mon contrôle, il faut qu'il ai été crée avec CreateWindowExW. (dites moi si j'ai faux jusqu'ici). Donc, si mon raisonnement est bon, avec un outil type IDA (desassembleur) je devrais trouver une trace de CreateWindowExW, dans le binaire pour lequel l'affichage de caractères unicode fonctionne ....
Ce n'est pas le cas, par contre je vois bien SetDlgItemTextW ...
Auriez-vous une explication ??
Et Deuxieme question comment pourrais-je forcer l'appel de CreateWindowExW pour la création des controles qui afficheront des caracteres unicode ??
++
Fred
Partager