IdentifiantMot de passe
Loading...
Mot de passe oublié ?Je m'inscris ! (gratuit)
Navigation

Inscrivez-vous gratuitement
pour pouvoir participer, suivre les réponses en temps réel, voter pour les messages, poser vos propres questions et recevoir la newsletter

MFC Discussion :

Intellisene ne m'offre pas CString.TextOut mais CString.TextOutW ou CString.TextOutA


Sujet :

MFC

  1. #1
    Membre éclairé
    Profil pro
    Inscrit en
    Août 2006
    Messages
    249
    Détails du profil
    Informations personnelles :
    Localisation : Canada

    Informations forums :
    Inscription : Août 2006
    Messages : 249
    Par défaut Intellisene ne m'offre pas CString.TextOut mais CString.TextOutW ou CString.TextOutA
    Bonjour,

    Intellisene ne m'offre pas TextOut mais TextOutW ou TextOutA quand je tape pDC->T... . Je sais que TextOutW supporte les jeux de charactères Unicode et si je vais dans les propriétés de mon projet je peux changer le jeux de charactère entre Not Set, Use Unicode Character Set, Use Multi-Byte character Set etc. mais je n'ai jamais résussi en jouant avec le jeux de charactère de faire en sorte que Intellisense m'offre TextOut.

    Que dois-je faire pour ça ?

    Le pire c'est que ce n'est pas vraiment nécessaire dans mon projet je peux utiliser n'importe lequel de ces jeux de charactères mais ça me chicotte quand même. Il y a probablement une options dans le Wizard de création de projet qui influence cela.


    Merci pour vos suggestions

  2. #2
    Membre éclairé
    Profil pro
    Inscrit en
    Août 2006
    Messages
    249
    Détails du profil
    Informations personnelles :
    Localisation : Canada

    Informations forums :
    Inscription : Août 2006
    Messages : 249
    Par défaut
    Bon, pour avoir une explication de ce qui se passe allez voir ici.

    1. http://www.codeproject.com/Articles/...-I-Win32-Chara
    2. http://www.codeproject.com/Articles/...-II-String-Wra
    Allez voir plus spécifiquement la section MBCS and Unicode in the Win32 API et TCHAR to the rescue! dans la première page.

    Je me permet de reproduire le texte en anglais.

    ...
    . So how is it that we can write "SetWindowText" when there isn't an API by that name? The winuser.h header file contains some #defines, like this:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
     
    BOOL WINAPI SetWindowTextA ( HWND hWnd, LPCSTR lpString );
    BOOL WINAPI SetWindowTextW ( HWND hWnd, LPCWSTR lpString );
     
    #ifdef UNICODE
    #define SetWindowText  SetWindowTextW
    #else
    #define SetWindowText  SetWindowTextA
    #endif
    When building for the MBCS APIs, UNICODE is not defined, so the preprocessor sees:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    #define SetWindowText  SetWindowTextA
    and replaces calls to SetWindowText() with calls to the real API, SetWindowTextA(). (Note that you can, if you wanted to, call SetWindowTextA() or SetWindowTextW() directly, although you'd rarely need to do that.)

    Voir aussi les pages sur MSDN
    1. http://msdn.microsoft.com/en-us/library/c426s321
    2. http://msdn.microsoft.com/en-us/library/tsbaswba
    Beaucoup de temps perdu à déboguer va être sauvé dorénavant.

Discussions similaires

  1. pas de stage mais diplome, emploi ?
    Par Battosaiii dans le forum Emploi
    Réponses: 7
    Dernier message: 19/04/2006, 10h18
  2. je n'ai pas de probleme (mais que s des header
    Par funckfot dans le forum Langage
    Réponses: 2
    Dernier message: 07/04/2006, 14h56
  3. [CMATH]Sinus -> Pas en degrès, mais en quoi?
    Par Zenol dans le forum Mathématiques
    Réponses: 2
    Dernier message: 28/01/2006, 12h02
  4. Couleur de fond d’un page qui n’est pas une page mais juste
    Par Furius dans le forum Balisage (X)HTML et validation W3C
    Réponses: 2
    Dernier message: 12/01/2006, 17h16
  5. Carte réseaux Gigabit n'offre pas la vitesse 1 Gbit
    Par kikica dans le forum Hardware
    Réponses: 1
    Dernier message: 28/12/2005, 14h38

Partager

Partager
  • Envoyer la discussion sur Viadeo
  • Envoyer la discussion sur Twitter
  • Envoyer la discussion sur Google
  • Envoyer la discussion sur Facebook
  • Envoyer la discussion sur Digg
  • Envoyer la discussion sur Delicious
  • Envoyer la discussion sur MySpace
  • Envoyer la discussion sur Yahoo