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 / ActiveX] Navigation par tabulation


Sujet :

MFC

  1. #1
    Membre confirm� Avatar de tus01
    Profil pro
    Inscrit en
    Octobre 2004
    Messages
    191
    D�tails du profil
    Informations personnelles :
    �ge : 43
    Localisation : France

    Informations forums :
    Inscription : Octobre 2004
    Messages : 191
    Par d�faut [MFC / ActiveX] Navigation par tabulation
    Pourquoi lorsque je je souhaite passer d'un contr�le Edit Box � un autre en appuyant sur TAB rien ne se passe?
    Pourtant pour chaque Edit Box l'option est coch�e!
    Mes Edit Box sont dans des Group Box et �a ne veut pas fonctionner.

    Est-il possible de cr�er une fonction pour forcer la navigation?

    Merci � vous....

  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
    Par d�faut
    essaye de reprendre la main dans la dialogue de l'activex
    en interceptant PreTranslateMessage(MSG* pMsg)
    Code : S�lectionner tout - Visualiser dans une fen�tre � part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
     
    BOOL mydlg::PreTranslateMessage(MSG* pMsg)
    {
            if (pMsg->message == WM_KEYDOWN)
    	{	
    		switch (pMsg->wParam)
    		{
    		case VK_TAB:
    			GetNextDlgTabItem(this)->SetFocus();
                    }
            }
    }

  3. #3
    Membre confirm� Avatar de tus01
    Profil pro
    Inscrit en
    Octobre 2004
    Messages
    191
    D�tails du profil
    Informations personnelles :
    �ge : 43
    Localisation : France

    Informations forums :
    Inscription : Octobre 2004
    Messages : 191
    Par d�faut
    OK donc cette fonction est cens�e renvoyer un nonzero si le message a �t� envoy� et un 0 si il ne l'a pas �t�.
    Je rajoute donc un return 1 dans le code que tu m'a pass� pour valider l'exp�dition du message! (si elle a lieu...)
    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
    BOOL CWorkshiftDialog::PreTranslateMessage(MSG* pMsg) 
    {
    	// TODO: Add your specialized code here and/or call the base class
    	if (pMsg->message == WM_KEYDOWN) 
       {    
          switch (pMsg->wParam) 
          { 
          case VK_TAB: 
             GetNextDlgTabItem(this)->SetFocus(); 
    		 return 1;
                    } 
     
            } 
     
    	return CDialog::PreTranslateMessage(pMsg);
    }
    Mais �a n'a pas l'air de fonctionner! J'ai aussi essay� avec return 0 pensant que �a viendrait de �a mais il n'a rien voulu savoir!

  4. #4
    r0d
    r0d est d�connect�
    Membre exp�riment�

    Homme Profil pro
    D�veloppeur informatique
    Inscrit en
    Ao�t 2004
    Messages
    4 295
    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 295
    Billets dans le blog
    2
    Par d�faut
    enl�ve ce return 1, et met un break � la place.

  5. #5
    Membre confirm� Avatar de tus01
    Profil pro
    Inscrit en
    Octobre 2004
    Messages
    191
    D�tails du profil
    Informations personnelles :
    �ge : 43
    Localisation : France

    Informations forums :
    Inscription : Octobre 2004
    Messages : 191
    Par d�faut
    Non �a me produit une erreur d'assertion, il n'aime pas trop le break j'ai l'impression !!

  6. #6
    Expert �minent
    Avatar de M�dinoc
    Homme Profil pro
    D�veloppeur informatique
    Inscrit en
    Septembre 2005
    Messages
    27 397
    D�tails du profil
    Informations personnelles :
    Sexe : Homme
    �ge : 41
    Localisation : France

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

    Informations forums :
    Inscription : Septembre 2005
    Messages : 27 397
    Par d�faut
    D�j�, ton code reformul� : Ici, tu n'auras pas de probl�me avec le break, et tu choisis de retourner TRUE ou FALSE.
    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
    BOOL CWorkshiftDialog::PreTranslateMessage(MSG* pMsg)
    {
    // TODO: Add your specialized code here and/or call the base class
    BOOL bRetour = FALSE;
    BOOL bTraite = FALSE;
     
    if(pMsg->message == WM_KEYDOWN)
    {
    	switch(pMsg->wParam)
    	{
    	case VK_TAB:
    		GetNextDlgTabItem(this)->SetFocus();
     
    		bRetour = TRUE;// true ? false ? ici, c'est ton 1
     
    		bTraite = TRUE;
    		break;
    	}//switch
    }//if keydown
     
    if( !bTraite )
    	bRetour = CDialog::PreTranslateMessage(pMsg);
     
    return bRetour;
    }
    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.

  7. #7
    Membre confirm� Avatar de tus01
    Profil pro
    Inscrit en
    Octobre 2004
    Messages
    191
    D�tails du profil
    Informations personnelles :
    �ge : 43
    Localisation : France

    Informations forums :
    Inscription : Octobre 2004
    Messages : 191
    Par d�faut
    Mouais!
    Ca ne donne rien de concluant non plus...

  8. #8
    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
    tu y passes au moins dans le switch sur le vk_tab ?
    (en mode trace debug ).

  9. #9
    Membre confirm� Avatar de tus01
    Profil pro
    Inscrit en
    Octobre 2004
    Messages
    191
    D�tails du profil
    Informations personnelles :
    �ge : 43
    Localisation : France

    Informations forums :
    Inscription : Octobre 2004
    Messages : 191
    Par d�faut
    En mode trace debug j'ai mis un breakpoint sur le case:
    j'ai l'erreur suivante:

    Name: this
    Value: CXX0017: Error: symbol "this" not found
    J'en conclus que c'es le this qui bloque tout !
    Qu'en pensez-vous?

    Seulement ce this si j'ai bien compris est cens� representer mon contr�le, soit mon edit box! Donc je ne peut pas mettre IDC_MonEditBox � la place sinon il n'y en aura qu'une qui sera trait�e!!

Discussions similaires

  1. Cycle de navigation par tabulation
    Par JavaGame dans le forum Flex
    R�ponses: 1
    Dernier message: 11/03/2010, 10h52
  2. Navigation par tabulation
    Par Jonathan.b dans le forum Mise en page CSS
    R�ponses: 2
    Dernier message: 30/01/2008, 12h21
  3. R�ponses: 4
    Dernier message: 03/10/2007, 17h27
  4. [MFC] ActiveX Mp3
    Par mulot49 dans le forum MFC
    R�ponses: 2
    Dernier message: 03/03/2005, 17h26
  5. R�ponses: 7
    Dernier message: 05/08/2004, 14h55

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