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 :

[MFC] Poster un caractère dans un CEdit au niveau du curseur


Sujet :

MFC

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre confirmé
    Profil pro
    Inscrit en
    Mars 2006
    Messages
    60
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mars 2006
    Messages : 60
    Par défaut [MFC] Poster un caractère dans un CEdit au niveau du curseur
    Bonjour,

    Pour écrire le caractère 'A' dans un contrôle CEdit, j'utilise le code :

    pEdit->PostMessage(WM_CHAR,'A');

    Mon problème est que ce 'A' s'affiche en tête.
    Or je voudrais qu'il s'insère à la position du curseur.
    Comment faire ?
    Merci d'avance

  2. #2
    r0d
    r0d est déconnecté
    Membre expérimenté

    Homme Profil pro
    Développeur informatique
    Inscrit en
    Août 2004
    Messages
    4 292
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Ain (Rhône Alpes)

    Informations professionnelles :
    Activité : Développeur informatique

    Informations forums :
    Inscription : Août 2004
    Messages : 4 292
    Billets dans le blog
    2
    Par défaut
    Bonjour,

    Si j'ai bien compris ta question, ceci devrais fonctionner:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    CString strBuffer = pEdit->GetWindowText(); //récupère le contenu du CEdit
    pEdit->SetWindowText(strBuffer+"A"); //insère "A" à la fin
    Hope it helps.

  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
    Par défaut
    salut,
    eventuellement avec un pEdit->SetSel(0,0) avant le postmessage.

  4. #4
    Membre confirmé
    Profil pro
    Inscrit en
    Mars 2006
    Messages
    60
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mars 2006
    Messages : 60
    Par défaut
    Oui, tu as bien compris la question, sauf que je veux écire la caractère à la position du curseur du CEdit.

  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
    Par défaut
    moué bizarre .
    que renvoie GetSel (nStartChar et nEndChar )?

  6. #6
    Membre confirmé
    Profil pro
    Inscrit en
    Mars 2006
    Messages
    60
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mars 2006
    Messages : 60
    Par défaut
    Malheureusement, GetSel ne me renvoie rien d'intéressant :
    j'obtiens 0 et le nombre de caractères de la chaîne du CEdit.
    Je n'obtiens pas la position du curseur (que j'aimerai bien récupérer).

    C'est peut-être parce que je poste à partir d'une fonction OnButton() appelée par un clic sur un bouton ??

    Donc, la question est : comment récupérer DebutSel et FinSel ?

  7. #7
    r0d
    r0d est déconnecté
    Membre expérimenté

    Homme Profil pro
    Développeur informatique
    Inscrit en
    Août 2004
    Messages
    4 292
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Ain (Rhône Alpes)

    Informations professionnelles :
    Activité : Développeur informatique

    Informations forums :
    Inscription : Août 2004
    Messages : 4 292
    Billets dans le blog
    2
    Par défaut
    Citation Envoyé par Hepm
    Oui, tu as bien compris la question, sauf que je veux écire la caractère à la position du curseur du CEdit.
    Arf, je ne suis pas sûr d'avoir biezn compris Pourrais-tu donner un exemple?

  8. #8
    Membre confirmé
    Profil pro
    Inscrit en
    Mars 2006
    Messages
    60
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mars 2006
    Messages : 60
    Par défaut
    Citation Envoyé par r0d
    Arf, je ne suis pas sûr d'avoir biezn compris Pourrais-tu donner un exemple?
    C'est vrai que je n'ai pas été très clair! Bon, alors j'explique tout :

    J'ai une CDialog comportant un CComboBox et des boutons qui doivent servir de touches (genre calculatrice).

    Quand j'appuie sur Button0, ça lance OnButton0() que j'avais initialement écrite ainsi :

    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
     
    void CSaisieExpression::OnButton0()
    //Insère un '0' dans la chaîne du ComboBox
    {
    	CComboBox* pEdit = (CComboBox*) GetDlgItem(IDC_COMBO1);
    	pEdit->SetFocus();
    	DWORD Selection = pEdit->GetEditSel();
    	int Debut = Selection & 0xFFFF;//partie basse de Selection
    	int Fin = (Selection >> 16) & 0xFFFF;//partie haute de Selection
    	CString Ch;
    	pEdit->GetWindowText(Ch);
    	Ch.Delete(Debut, Fin-Debut);//suppression partie sélectionnée
    	Ch.Insert(Debut, '0');
    	pEdit->SetWindowText(Ch);
    }
    Mon problème, c'est que j'obtiens toujours Debut = 0 et Fin = Nombre de caractères de la chaîne.

  9. #9
    r0d
    r0d est déconnecté
    Membre expérimenté

    Homme Profil pro
    Développeur informatique
    Inscrit en
    Août 2004
    Messages
    4 292
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Ain (Rhône Alpes)

    Informations professionnelles :
    Activité : Développeur informatique

    Informations forums :
    Inscription : Août 2004
    Messages : 4 292
    Billets dans le blog
    2
    Par défaut
    Il me semble que le SetFocus est inutile. Que se passe-t-il si tu l'enlève?

Discussions similaires

  1. [MFC] Problème d'insertion du caractère ' dans une BD
    Par julien.nasser dans le forum MFC
    Réponses: 5
    Dernier message: 21/04/2006, 09h46
  2. [MFC] Insertion d'une chaine de caractère dans une BD
    Par julien.nasser dans le forum MFC
    Réponses: 2
    Dernier message: 20/04/2006, 15h19
  3. Réponses: 2
    Dernier message: 01/03/2006, 21h34
  4. Réponses: 7
    Dernier message: 16/11/2004, 15h45
  5. [MFC] Retour à la ligne dans un CEdit
    Par Kant dans le forum MFC
    Réponses: 7
    Dernier message: 18/02/2004, 08h58

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