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

C++ Discussion :

Petit soucis avec TextOut?


Sujet :

C++

  1. #1
    Membre à l'essai
    Homme Profil pro
    Sans emplois
    Inscrit en
    Août 2014
    Messages
    19
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 44
    Localisation : Belgique

    Informations professionnelles :
    Activité : Sans emplois
    Secteur : Industrie

    Informations forums :
    Inscription : Août 2014
    Messages : 19
    Points : 11
    Points
    11
    Par défaut Petit soucis avec TextOut?
    Bonjour/Bonsoir,

    Voilà, je m'en viens me tourner vers vous car je commence à perdre patience à force de recherche sur internet.

    Depuis quelques heures, je cherche à faire afficher un message sur l'écran avec les API de windows, donc, en WIN32. Je sais que je peux passer par des bibliothèques comme QT, DirectX et bien d'autre, mais je ne veux pas pour l'instant.

    Donc voilà, suivant les information que j'ai trouvé sur internet, je code ma fonction. Voici le code de cette fonction:

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
     
    //Cette fonction ne fait rien d'autre que d'écrire un texte sur l'écran
     
    	HFONT hFont;
    	HDC dc;
    	PAINTSTRUCT ps;
    	int size = 64;
     
    	std::string Mess;
     
    	hFont = CreateFont(20, 0, 0, 0, 700, false, false, false, 0, OUT_DEFAULT_PRECIS, CLIP_DEFAULT_PRECIS, DEFAULT_QUALITY, DEFAULT_PITCH | FF_DONTCARE, L"Comic Sans MS");
     
    	dc = BeginPaint(hWnd, &ps);
    	SelectObject(dc, hFont);
     
    	TextOut(dc, 0, 0, (LPCWSTR)Text.c_str(), sizeof(Text));
     
    	EndPaint(hWnd, &ps);
     
    	DeleteObject(hFont);
    Cependant, quand je lance le programme, je n'ai aucune erreurs de compilation ou autre, mais j'obtiens sur l'écran ceci:

    Nom : Message.png
Affichages : 387
Taille : 4,1 Ko

    Quelqu'un pourrait il me dire où est le problème? J'ai été obligé de faire un cast dans la fonction TextOut car elle me refusait la ligne Text.c_str().

    Je continue mes recherches mais je compte beaucoup sur votre aide pour un problème aussi mineur mais important pour moi.

    Merci d'avance, Frédéric.

  2. #2
    Membre éprouvé
    Inscrit en
    Avril 2005
    Messages
    1 110
    Détails du profil
    Informations forums :
    Inscription : Avril 2005
    Messages : 1 110
    Points : 937
    Points
    937
    Par défaut
    Essaye ceci
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    TextOut(dc, 0, 0, Text.c_str(), Text.size());
    Et attention à ne pas mélanger les chaines en unicode avec les fonctions non-unicode, et vice-versa

  3. #3
    Membre à l'essai
    Homme Profil pro
    Sans emplois
    Inscrit en
    Août 2014
    Messages
    19
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 44
    Localisation : Belgique

    Informations professionnelles :
    Activité : Sans emplois
    Secteur : Industrie

    Informations forums :
    Inscription : Août 2014
    Messages : 19
    Points : 11
    Points
    11
    Par défaut
    Merci de ta réponse Camboui. Cependant, j'avais, il me semble, déjà essayer cette solution.

    Je te met le message que j'ai, j'ai aussi oublier de dire que Text est un std::string.

    Voici ce que l'IDE (VS 2015) me dit:

    Nom : Message2.png
Affichages : 360
Taille : 7,5 Ko

    Ma config pour les chaînes est:

    Nom : Message3.png
Affichages : 268
Taille : 2,5 Ko

    Petit question en passant, c'est quoi le mieux pour les chaînes? Le unicode ou le multi octets? Et quelle est la différence?

    Désolé, je ne connais pas encore bien tout ça.

  4. #4
    Membre éprouvé
    Inscrit en
    Avril 2005
    Messages
    1 110
    Détails du profil
    Informations forums :
    Inscription : Avril 2005
    Messages : 1 110
    Points : 937
    Points
    937
    Par défaut
    Citation Envoyé par Anubisas Voir le message
    ... j'ai aussi oublié de dire que Text est un std::string.
    Pas bien vu que ton projet est en unicode.
    Change toutes tes chaines en std::wstring, et ça devrait aller

  5. #5
    Membre à l'essai
    Homme Profil pro
    Sans emplois
    Inscrit en
    Août 2014
    Messages
    19
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 44
    Localisation : Belgique

    Informations professionnelles :
    Activité : Sans emplois
    Secteur : Industrie

    Informations forums :
    Inscription : Août 2014
    Messages : 19
    Points : 11
    Points
    11
    Par défaut
    Super Camboui. Cela fonctionne super.

    Nom : Message4.png
Affichages : 241
Taille : 3,1 Ko

    Vraiment un grand merci à toi.

    Je ne vais pas mettre tout de suite comme résolus, il faut encore que je trouve pour changer la couleur et la police de caractères.

    Encore merci de ton aide.

  6. #6
    Membre à l'essai
    Homme Profil pro
    Sans emplois
    Inscrit en
    Août 2014
    Messages
    19
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 44
    Localisation : Belgique

    Informations professionnelles :
    Activité : Sans emplois
    Secteur : Industrie

    Informations forums :
    Inscription : Août 2014
    Messages : 19
    Points : 11
    Points
    11
    Par défaut
    Et bien, je peux maintenant placer le sujet comme résolut. Je viens en effet de trouver pour modifier la couleur du texte grâce à la fonction: SetTextColor(dc, RGB(0, 0, 255)).

    Pour ce qui est de changer la police, je suppose que cela se fait via CreateFont. Cela devrait donc aller sans problème.

    Merci pour toutes les réponses

+ Répondre à la discussion
Cette discussion est résolue.

Discussions similaires

  1. petit soucis avec mon graveur
    Par Vador dans le forum Périphériques
    Réponses: 8
    Dernier message: 02/11/2005, 14h58
  2. petit soucis avec les listes
    Par Death83 dans le forum Balisage (X)HTML et validation W3C
    Réponses: 2
    Dernier message: 03/09/2005, 10h08
  3. Petit souci avec clause where
    Par ybruant dans le forum SQL
    Réponses: 1
    Dernier message: 21/07/2005, 22h10
  4. petit souci avec des variables avec des fonctions psql
    Par dust62 dans le forum PostgreSQL
    Réponses: 4
    Dernier message: 02/04/2005, 13h45
  5. [DEBUTANT] petits soucis avec un prgm de chat
    Par LechucK dans le forum MFC
    Réponses: 8
    Dernier message: 19/01/2004, 16h52

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