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] WS_TABSTOP entre CDialog imbriquée [Fait]


Sujet :

MFC

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    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,

    Citation Envoyé par farscape
    salut,
    tu peux faire comme suit:
    sur preTranslateMessage:
    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
     
    BOOL MyChild::PreTranslateMessage(MSG* pMsg) 
    {
        // TODO: Add your specialized code here and/or call the base class    
        if (pMsg->message == WM_KEYDOWN)
        {            
            CWnd *pWnd,*pFocused;
            switch (pMsg->wParam)
            {
            case VK_TAB:
                        pFocused=pWnd=CWnd::GetFocus();
                        // le premier dans l'ordre des tabulations
                          CWnd *pFirstCtrl=pWnd->GetNextDlgTabItem(NULL);                              // le suivant par rapport au courant...
                        CWnd *pCtrlNext=pWnd->GetNextDlgTabItem(pFocused);
                        if(pFirstCtrl==pCtrlNext)
                         {
                             // si le suivant est égal au premier dans l'ordre du tab     
                             //control c'est que l'on est sur le dernier ...
     
                          }
            }
    //......
    }
    Après avoir mis en application la méthode proposée par Farscape je me suis rendu compte d'un petit problème : que l'on utilise la touche Tab ou la combinaison Maj + Tab, la réaction sera la même : passage au contrôle suivant dans l'ordre des tabulations. Du coup, on perd la fonctionnalité du retour en arrière de la combinaison Maj + Tab.

    Quelqu'un a-t-il une idée pour résoudre ce problème ?

  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
    il suffit de detecter le Maj Tab et d'adapter le traitement ...
    pour la detection du shift voir ce post:
    http://c.developpez.com/faq/vc/?page...trlLikeWindows

+ Répondre à la discussion
Cette discussion est résolue.
Page 2 sur 2 PremièrePremière 12

Discussions similaires

  1. [MFC] Communication entre une CDialog et une CFormview
    Par julien.nasser dans le forum MFC
    Réponses: 8
    Dernier message: 06/07/2006, 14h32
  2. [MFC] Communication entre CDialog
    Par Bmagic dans le forum MFC
    Réponses: 2
    Dernier message: 27/06/2006, 17h26
  3. [MFC] différence entre CView et CDialog?
    Par r0d dans le forum MFC
    Réponses: 3
    Dernier message: 22/02/2005, 16h23
  4. Réponses: 6
    Dernier message: 28/02/2004, 09h19
  5. [MFC] CPropertySheet (ou CDialog)
    Par tut dans le forum MFC
    Réponses: 4
    Dernier message: 06/11/2002, 13h09

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