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][CEDIT][EVENT] Recuperer la ligne point par le curseur.


Sujet :

MFC

  1. #1
    Membre du Club

    Inscrit en
    Février 2003
    Messages
    38
    Détails du profil
    Informations forums :
    Inscription : Février 2003
    Messages : 38
    Points : 40
    Points
    40
    Par défaut [MFC][CEDIT][EVENT] Recuperer la ligne point par le curseur.
    Bonjour à tous!!

    J'ai une application SDI basée sur un FormView.

    J'ai un CEdit dessus et je voudrais lorsque je clique dessus sur une de ses lignes récupérer le numero de cette ligne et l'afficher dans la zone NUM de la status Bar. (Comme Visual C++)

    Pour recupérer le numero de ligne et l'afficher dans la zone précitée c'est ok.

    Je fais comme cela:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    	// TODO: Add your control notification handler code here
     
    	char txtLig[50];
    	int lig;
    	erreurIHM = (CEdit *) GetDlgItem (IDC_ERREUR);
    	lig=erreurIHM->SendMessage(EM_EXLINEFROMCHAR, 0, (LPARAM) (DWORD)erreurIHM->SendMessage(EM_GETSEL)) + 1;
    	sprintf(txtLig,"Lig %d",lig);
    		theFrm->m_wndStatusBar.SetPaneText(1,txtLig);
    Seulement je voudrais faire cela sur un evenement de type OnClick() mais y'en a pas. J'ai essayé sur l'evenement OnSetFocus() cela me renvoie toujours l'indice "1" quelque soit l'endroit ou je cliquedans le Cedit.

    Peut on créer son propre event su l'objet Cedit???

    Ca me dépite j'arrive à rien...


    THANX d'avance à tous ceux qui m'aideront!!!
    1 bière, ça va. 2 bières, ça va. 3 bières, ça va. 4 bières, ça va. 5 bières, ça va. 6 bières, ça fait un pack.
    JP Rouve

  2. #2
    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,
    tu crees un edit derivé de la classe CEdit avec classWizard ,
    tu intercepetes dessus le message leftbuttondown.
    et utilise:
    CEdit::CharFromPos
    This method retrieves the zero-based line and character indexes of the character nearest the specified point in this CEdit control.
    int CharFromPos(
    CPoint pt )
    const;
    pour trouver la ligne.
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
     
    CMyEdit::OnLButtonDown(UINT nFlags, CPoint point) 
    {
      int n = CharFromPos(point);
      int nLineIndex = HIWORD(n);
      int nCharIndex = LOWORD(n);
    //...........................

  3. #3
    Membre émérite
    Avatar de la drogue c'est mal
    Profil pro
    Inscrit en
    Novembre 2002
    Messages
    2 253
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Novembre 2002
    Messages : 2 253
    Points : 2 747
    Points
    2 747
    Par défaut
    si tu fais du C++, evite ce genre de chose

    char txtLig[50];
    sprintf(txtLig,"Lig %d",lig);


    tu ne fais plus du C mais du C++ avec les classes qui fait tout ca bien tout seul
    il y a du linge sur la corde à linge

  4. #4
    Membre du Club

    Inscrit en
    Février 2003
    Messages
    38
    Détails du profil
    Informations forums :
    Inscription : Février 2003
    Messages : 38
    Points : 40
    Points
    40
    Par défaut
    Citation Envoyé par la drogue c'est mal
    si tu fais du C++, evite ce genre de chose

    char txtLig[50];
    sprintf(txtLig,"Lig %d",lig);


    tu ne fais plus du C mais du C++ avec les classes qui fait tout ca bien tout seul
    Aaaaaaaaaaaaaaah C quand tu nous tiens.... .... un amour de jeunesse.....

    Merci en tout cas pour votre aide, je vous tiens aux courants de mes avancées sous peu.Encore merci!!!!
    1 bière, ça va. 2 bières, ça va. 3 bières, ça va. 4 bières, ça va. 5 bières, ça va. 6 bières, ça fait un pack.
    JP Rouve

  5. #5
    Membre du Club

    Inscrit en
    Février 2003
    Messages
    38
    Détails du profil
    Informations forums :
    Inscription : Février 2003
    Messages : 38
    Points : 40
    Points
    40
    Par défaut
    Ca pète ça marche impeccable....
    mais maintenant g un autre problème.... m'enfin dans un autre poste...
    1 bière, ça va. 2 bières, ça va. 3 bières, ça va. 4 bières, ça va. 5 bières, ça va. 6 bières, ça fait un pack.
    JP Rouve

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

Discussions similaires

  1. recuperation des lignes commencant par -
    Par vince2005 dans le forum Langage
    Réponses: 1
    Dernier message: 24/04/2007, 14h55
  2. recuperer l'enregistrement d'un dbgrid pointe par la souris
    Par bidochon dans le forum Bases de données
    Réponses: 2
    Dernier message: 15/09/2006, 15h32
  3. Réponses: 3
    Dernier message: 31/10/2005, 16h47
  4. Réponses: 3
    Dernier message: 27/09/2005, 08h44
  5. [VB.NET] Recuperer numero ligne dans DATAGRID apres event
    Par stephane93fr dans le forum Windows Forms
    Réponses: 4
    Dernier message: 13/01/2005, 11h58

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