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 :

Probl�me sur Renomer dans un CTreeCtrl


Sujet :

MFC

Vue hybride

Message pr�c�dent Message pr�c�dent   Message suivant Message suivant
  1. #1
    Nouveau candidat au Club
    Inscrit en
    Mars 2008
    Messages
    1
    D�tails du profil
    Informations forums :
    Inscription : Mars 2008
    Messages : 1
    Par d�faut Probl�me sur Renomer dans un CTreeCtrl
    Bonjour � tous, je suis nouveau sur le forum.

    Voil�, j'ai un treectrl myTree definie dans le ressource,

    quand je fais F2 , j'obtient un CEdit et je peux renomer l'item du tree.
    je veux emp�cher l'utilisateur de taper sur le touche +,*,-,/,&,\

    Alors j'ai utilis� ce 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
    22
    23
    24
    25
    26
    27
    28
    29
    30
    31
    32
    33
    34
    35
    36
    37
    38
    39
     
    BOOL CMyDlg::PreTranslateMessage(MSG* pMsg)
    {
       if (pMsg->message == WM_KEYDOWN &&
          pMsg->wParam == VK_RETURN || pMsg->wParam == VK_ESCAPE)
       {
          CEdit* edit = myTree.GetEditControl();
          if (edit)
          {
             edit->SendMessage(WM_KEYDOWN, pMsg->wParam, pMsg->lParam);
             return TRUE;
          }
       }
       if (pMsg->message == WM_KEYDOWN)
          switch(pMsg->wParam)
       {
          case VK_DIVIDE:
             return TRUE;
             break;
          case VK_MULTIPLY:
             return TRUE;
             break;
          case VK_ADD :
             return TRUE;
             break;
          case VK_SUBTRACT :
             return TRUE;
             break;
          case 49 : //key "&"
             return TRUE;
             break;
          case 0x38 : //key: "\"
             return TRUE;
             break;
          default:
             break;
       }
       return CDialog::PreTranslateMessage(pMsg);
    }
    le probl�me avec mon code ci dessus c'est que l'utilisateur ne peux plus acceder au touche 1(&) au dessus de A et au touche 8(\,_) au dessus de U, � cause de
    Code : S�lectionner tout - Visualiser dans une fen�tre � part
    1
    2
    3
    4
    5
    6
    7
     
          case 49 : //key "&"
             return TRUE;
             break;
          case 0x38 : //key: "\"
             return TRUE;
             break;
    auriez vous d'autre solution � me proposer? merci d'avance pour vos r�ponse

    Remarque: j'ai d�j� essay� de creer une classe h�ritant cedit et capturer l'event onchar mais j'ai eu un autre probl�me

    Scottmada

  2. #2
    Membre chevronn�
    Avatar de PetitPapaNo�l
    D�veloppeur informatique
    Inscrit en
    Septembre 2006
    Messages
    559
    D�tails du profil
    Informations personnelles :
    �ge : 49

    Informations professionnelles :
    Activit� : D�veloppeur informatique

    Informations forums :
    Inscription : Septembre 2006
    Messages : 559
    Par d�faut
    Bonjour,

    Si je comprends bien, il faut que tu testes, dans les cas qui te posent probl�me, que la touche "Maj" n'est pas enfonc�e. Pour cela, tu peux utiliser la macro IsShiftDown() propos�e par Farscape dans la FAQ.

    Ensuite, int�gre cette macro dans ton code de la fa�on suivante :
    Code : S�lectionner tout - Visualiser dans une fen�tre � part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    	case 49 : //key "&"
    		if (IsShiftDown())
    			break;
     
    		return TRUE;
     
    	case 0x38 : //key: "\"
    		if (IsShiftDown())
    			break;
     
    		return TRUE;

  3. #3
    Membre chevronn� Avatar de stephdim
    Profil pro
    Inscrit en
    Ao�t 2007
    Messages
    462
    D�tails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Ao�t 2007
    Messages : 462
    Par d�faut
    salut,

    interceptes plutot le message WM_CHAR qui donne un code ASCII au lieu de WM_KEYDOWN.

    d'ailleurs un controle EDIT utilises ce message pour la saisie. (WM_KEYDOWN c'est uniquement pour les touches sp�ciales comme les fl�ches par ex)

    @+

+ R�pondre � la discussion
Cette discussion est r�solue.

Discussions similaires

  1. probl�me sur selection dans un DataGridView
    Par gueulederack dans le forum VB.NET
    R�ponses: 16
    Dernier message: 10/01/2012, 09h46
  2. R�ponses: 4
    Dernier message: 11/04/2007, 12h49
  3. R�ponses: 1
    Dernier message: 13/12/2006, 21h31
  4. R�ponses: 2
    Dernier message: 11/01/2006, 15h49
  5. Probl�me: condition sur formulaire dans requ�te
    Par decour dans le forum Access
    R�ponses: 1
    Dernier message: 17/10/2005, 23h27

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