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 :

String table dans un controle CStatic


Sujet :

MFC

  1. #1
    Membre averti
    Profil pro
    Inscrit en
    Juin 2007
    Messages
    17
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juin 2007
    Messages : 17
    Par défaut String table dans un controle CStatic
    Bonjour,

    Je voudrais utiliser une string table pour mes contrôles que je met dans une windows de type CDialog dans l'éditeur de ressource.

    J'ai créer plusieurs entrées dans une StringTable depuis l'éditeur de ressource.
    Quand j'ajoute des contrôles de type CStatic via l'éditeur de ressource, je n'ai pas trouver le moyen d'utiliser les entrées que j'ai mis dans ma string table.

    Le but est de créer via l'éditeur de ressources des CStatic avec un contenu international.

    Merci de vos conseils

  2. #2
    Membre éprouvé
    Avatar de TheGzD
    Homme Profil pro
    Ingénieur/ Docteur en Informatique
    Inscrit en
    Avril 2007
    Messages
    1 327
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 43
    Localisation : France, Puy de Dôme (Auvergne)

    Informations professionnelles :
    Activité : Ingénieur/ Docteur en Informatique
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Avril 2007
    Messages : 1 327
    Par défaut
    Commence par assigner une variable de contrôle à ton static, pour cela attribue lui une IDC qui lui sera propre.

    Ensuite tu peux utiliser sa méthode SetWindowText pour changer le texte.

    Finalement, pour récupérer un champ de ta table string, utilise la méthode LoadString de CString.

    Bon courage

  3. #3
    Membre averti
    Profil pro
    Inscrit en
    Juin 2007
    Messages
    17
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juin 2007
    Messages : 17
    Par défaut
    Citation Envoyé par TheGzD Voir le message
    Commence par assigner une variable de contrôle à ton static, pour cela attribue lui une IDC qui lui sera propre.

    Ensuite tu peux utiliser sa méthode SetWindowText pour changer le texte.

    Finalement, pour récupérer un champ de ta table string, utilise la méthode LoadString de CString.

    Bon courage
    Merci pour votre reponse,
    mais j'aimerai plutot une procedure automatique au lieu d'allouer systematiquement une variable pour chaque control CStatic et ensuite mettre a jour le controle avec le contneue d'une stringTable.
    Sous l'editeur de ressource quand on ajoute un CStatic, on a la possibilité de mettre un "Caption", est ce qu'il y a une procedure pour utiliser un StringTable a la place d'un caption depuis l'editeur de ressource? ou un autre moyen tres simple que de mettre du code partout.

    Si ce n'est pas le cas, ca devient la galere de mettre plusieurs lignes de codes afin d'avoir des CStatic utilisant des stringTable.

  4. #4
    Membre éprouvé
    Avatar de TheGzD
    Homme Profil pro
    Ingénieur/ Docteur en Informatique
    Inscrit en
    Avril 2007
    Messages
    1 327
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 43
    Localisation : France, Puy de Dôme (Auvergne)

    Informations professionnelles :
    Activité : Ingénieur/ Docteur en Informatique
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Avril 2007
    Messages : 1 327
    Par défaut
    Citation Envoyé par my_oliver Voir le message
    Merci pour votre reponse,
    mais j'aimerai plutot une procedure automatique au lieu d'allouer systematiquement une variable pour chaque control CStatic et ensuite mettre a jour le controle avec le contneue d'une stringTable.
    Sous l'editeur de ressource quand on ajoute un CStatic, on a la possibilité de mettre un "Caption", est ce qu'il y a une procedure pour utiliser un StringTable a la place d'un caption depuis l'editeur de ressource? ou un autre moyen tres simple que de mettre du code partout.

    Si ce n'est pas le cas, ca devient la galere de mettre plusieurs lignes de codes afin d'avoir des CStatic utilisant des stringTable.
    Perso je ne connais pas de tel méthode, bien que c'est ce que j'aurai aimé trouvé dans VS.

    Après je peux me tromper, et si c'était le cas j'aimerai bien qu'on m'en dise plus

  5. #5
    Membre averti
    Profil pro
    Inscrit en
    Juin 2007
    Messages
    17
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juin 2007
    Messages : 17
    Par défaut
    Citation Envoyé par TheGzD Voir le message
    Perso je ne connais pas de tel méthode, bien que c'est ce que j'aurai aimé trouvé dans VS.

    Après je peux me tromper, et si c'était le cas j'aimerai bien qu'on m'en dise plus ;)
    J'ai trouver une solution alternative dite de bidouille.

    Step1: Creer une nouvelle classe a partir de CStatic.
    Step2: Faire un heritage de la methode "PreSubclassWindow"
    dont voici le code:

    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
    21
    void CPrompt::PreSubclassWindow() 
    {
    	CString data1;
    	CString data2;
    	int id = 0;
     
    	CStatic::PreSubclassWindow();
     
    	GetWindowText(data1);
     
    	id = atoi(data1);
    	data2.Format("%d",id);
     
    	if (data1 == data2)
    	{
    		if (data1.LoadString(id))
    		{
    			SetWindowText(data1);
    		}
    	}
    }
    Et dans l'editeur de ressource mettre des CStatic comme contrôles en créant systématiquement une variable de Type "la nouvelle classe crée" et mettre en caption le numéro de l'identifiant de la ressource stringTable

    C'est pas super, mais ca fonctionne.

    Maintenant, reste plus que le probleme comment changer de langue avec plusieurs StringTable.
    Si il y a des connaisseurs merci de m'eclairer

Discussions similaires

  1. [Débutant] Controler une table dans access
    Par chuspyto dans le forum VB.NET
    Réponses: 12
    Dernier message: 20/08/2013, 11h32
  2. afficher une table dans un controle onglet
    Par mbo2 dans le forum IHM
    Réponses: 1
    Dernier message: 22/04/2013, 15h55
  3. passage d'un nom de table dans une procédure stockée
    Par thierry V dans le forum MS SQL Server
    Réponses: 7
    Dernier message: 26/07/2010, 16h48
  4. Mapper plusieurs Maps<String, Double> dans la même table
    Par griboudou dans le forum Hibernate
    Réponses: 0
    Dernier message: 09/11/2009, 17h15
  5. Réponses: 2
    Dernier message: 29/05/2008, 20h37

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