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

Visual C++ Discussion :

Message dans Status Bar


Sujet :

Visual C++

  1. #1
    Membre à l'essai
    Inscrit en
    Février 2007
    Messages
    31
    Détails du profil
    Informations forums :
    Inscription : Février 2007
    Messages : 31
    Points : 20
    Points
    20
    Par défaut Message dans Status Bar
    bonsoir à tous,

    voilà j'utilise dans mon appli une status bar pour annoncer combien de joysticks sont connectés à l'appli, pour cela j'ai un tableau contenant mes joysticks, je recupère sa longueur qui est un int et j'ai besoin d'afficher quelquechose comme ça dans ma status bar, une concaténation entre la taille de mon tableau de joystick et une chaine :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
       hWndStatus = CreateWindowEx( 0, STATUSCLASSNAME, TEXT(joysticks.size() << " Joysticks found"),
                                  WS_CHILD | WS_VISIBLE,
                                  0, 0, 0, 0,
                                   hWnd, 0, hInstance, NULL);
    forçément, ça bloque, j'ai une erreur m'avertissant que la concaténation ne lui plait pas

    merci bcp pour votre aide

  2. #2
    Membre à l'essai
    Inscrit en
    Février 2007
    Messages
    31
    Détails du profil
    Informations forums :
    Inscription : Février 2007
    Messages : 31
    Points : 20
    Points
    20
    Par défaut
    rebonjour

    j'ai de nouveau cherché hier soir et je pensais avoir une piste avec la fonction itoa, la conversion se fait bien mais j'obtiens du coup des caractères étranges dans mon texte affiché, si quelqu'un a une idée ça serait super

    merci à vous

  3. #3
    Rédacteur
    Avatar de farscape
    Homme Profil pro
    Développeur informatique
    Inscrit en
    Novembre 2003
    Messages
    9 055
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Alpes Maritimes (Provence Alpes Côte d'Azur)

    Informations professionnelles :
    Activité : Développeur informatique
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Novembre 2003
    Messages : 9 055
    Points : 17 323
    Points
    17 323
    Par défaut
    salut,
    je ne comprends pas trop pourquoi tu procédes ainsi...
    tu as regardé dans la faq la gestion d'une barre de status ?
    http://c.developpez.com/faq/vc/?page=CStatusBar

  4. #4
    Membre à l'essai
    Inscrit en
    Février 2007
    Messages
    31
    Détails du profil
    Informations forums :
    Inscription : Février 2007
    Messages : 31
    Points : 20
    Points
    20
    Par défaut
    salut farscape,

    je voudrai éviter de passer par les MFC, et donc je me rends compte que mon post du coup n'est pas au bon endroit. En fait j'ai ma barre de status qui s'affiche correctement, c'est just au niveau de la légende que ça coince, ça m'embête un peu de passer par les MFC pour ça.

    je voudrai juste passer à la fonction SetWindowText en deuxième paramètre une chaine de caractère, à la base j'ai un int et je souhaite le convertir en string

    je fais donc :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    	char chaine[20];
    	itoa(joysticks.size(), chaine, 10);
    en pensant convertir mon int recupéré avec joysticks.size() et le stocker dans chaine, je tente de passer cette chaine à la fonction SetWindowText, mais là j'ai un texte avec des caractères chelous :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    SetWindowText(hWndStatus, (LPCWSTR)chaine);
    du coup j'ai testé comme avec TEXT mais là ça ne compile même pas :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
     SetWindowText(hWndStatus, TEXT(chaine));
    merci pour ton aide

  5. #5
    Rédacteur
    Avatar de farscape
    Homme Profil pro
    Développeur informatique
    Inscrit en
    Novembre 2003
    Messages
    9 055
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Alpes Maritimes (Provence Alpes Côte d'Azur)

    Informations professionnelles :
    Activité : Développeur informatique
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Novembre 2003
    Messages : 9 055
    Points : 17 323
    Points
    17 323
    Par défaut
    le sujet n'est pas de savoir si tu dois utiliser les MFC pour ça ,
    mais si ton projet est MFC ou Win32.
    si ton projet est MFC je persiste dans ma remarque....
    sinon :
    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
    // en c
    char chaine[30];
    sprintf(chaine,"%d Joysticks found",joysticks.size());
    
    // en c++
    #include <iostream>
    #include <iomanip>
    #include <string>
    #include <sstream>
    
    using namespace std;
    
    stringstream ss;
    ss << joysticks.size() << "Joysticks found";
    ss.str() // contient la chaine...

  6. #6
    Membre à l'essai
    Inscrit en
    Février 2007
    Messages
    31
    Détails du profil
    Informations forums :
    Inscription : Février 2007
    Messages : 31
    Points : 20
    Points
    20
    Par défaut
    super, merci

    oui c'est une appli win32

    alors tout est ok sauf au moment ou je passe la chaine à la fonction setWindowText :

    pour :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    	char chaine[30];
    	sprintf(chaine,"%d Joysticks found",joysticks.size());
     
    	SetWindowText(hWndStatus, chaine);
    j'ai cette erreur :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    Erreur	7	error C2664: 'SetWindowTextW' : impossible de convertir le paramètre 2 de 'char [30]' en 'LPCWSTR'

  7. #7
    Rédacteur
    Avatar de farscape
    Homme Profil pro
    Développeur informatique
    Inscrit en
    Novembre 2003
    Messages
    9 055
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Alpes Maritimes (Provence Alpes Côte d'Azur)

    Informations professionnelles :
    Activité : Développeur informatique
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Novembre 2003
    Messages : 9 055
    Points : 17 323
    Points
    17 323
    Par défaut
    tu es en Unicode ....
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    TCHAR chaine[30];
    swprintf(chaine,L"%d Joysticks found",joysticks.size());

  8. #8
    Membre à l'essai
    Inscrit en
    Février 2007
    Messages
    31
    Détails du profil
    Informations forums :
    Inscription : Février 2007
    Messages : 31
    Points : 20
    Points
    20
    Par défaut
    impeccable, merci pour ta patience

  9. #9
    Expert éminent sénior
    Avatar de Médinoc
    Homme Profil pro
    Développeur informatique
    Inscrit en
    Septembre 2005
    Messages
    27 374
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 40
    Localisation : France

    Informations professionnelles :
    Activité : Développeur informatique
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Septembre 2005
    Messages : 27 374
    Points : 41 541
    Points
    41 541
    Par défaut
    Pardon, quand on bosse en TCHAR, on bosse en TCHAR jusqu'au bout...
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
     
    TCHAR chaine[30];
    _stprintf(chaine, _T("%d Joysticks found"), joysticks.size());
    Sachant que les fonctions en question sont déclarées dans <tchar.h>.
    SVP, pas de questions techniques par MP. Surtout si je ne vous ai jamais parlé avant.

    "Aw, come on, who would be so stupid as to insert a cast to make an error go away without actually fixing the error?"
    Apparently everyone.
    -- Raymond Chen.
    Traduction obligatoire: "Oh, voyons, qui serait assez stupide pour mettre un cast pour faire disparaitre un message d'erreur sans vraiment corriger l'erreur?" - Apparemment, tout le monde. -- Raymond Chen.

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

Discussions similaires

  1. Message dans Status Bar
    Par Bob Groove dans le forum MFC
    Réponses: 6
    Dernier message: 13/03/2007, 10h56
  2. [RCP] ecrire dans la status bar depuis un editeur
    Par Jeannot dans le forum Eclipse Platform
    Réponses: 2
    Dernier message: 11/09/2006, 15h42
  3. status bar dans JFrame
    Par hysah dans le forum Agents de placement/Fenêtres
    Réponses: 3
    Dernier message: 01/06/2006, 19h29
  4. Utiliser la progress bar d'excel (celle dans la status bar)
    Par mustang-ffw02 dans le forum Macros et VBA Excel
    Réponses: 6
    Dernier message: 13/04/2006, 17h59
  5. progress bar dans une status bar ?
    Par raggadoll dans le forum C++Builder
    Réponses: 1
    Dernier message: 02/11/2005, 15h17

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