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 :

Scrollbar et touches directionnelles


Sujet :

MFC

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre éclairé Avatar de kitsune
    Inscrit en
    Décembre 2004
    Messages
    341
    Détails du profil
    Informations personnelles :
    Âge : 39

    Informations forums :
    Inscription : Décembre 2004
    Messages : 341
    Par défaut Scrollbar et touches directionnelles
    Bonjour,

    j'ai mis en place 2 scrollbar autour de ma fenetre OpenGL.
    Je voulais savoir comment est-ce qu'il est possible de gerer les deplacements des scrollbar via les touches directionnelles ?

    Merci.

  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
    salut,
    la scrollbar gère les touches si elle a le focus.
    tu peux aussi intercepter les touches claviers dans ta fenêtre et envoyer un message clavier à l'ascenseur concerné (vertical ou horizontal)..

  3. #3
    Membre éclairé Avatar de kitsune
    Inscrit en
    Décembre 2004
    Messages
    341
    Détails du profil
    Informations personnelles :
    Âge : 39

    Informations forums :
    Inscription : Décembre 2004
    Messages : 341
    Par défaut
    Ah ok merci.
    Effectivement j'ai vu que parfois les touches etaient gerees mais je ne savais pas pourquoi.

    Par contre pour intercepter les touches directionnelles du clavier c'est bien avec OnKeyDown ?
    Je teste le nChar avec VK_DOWN, VK_UP, etc... mais rien n'y fait.
    Les lettres sont bien interceptees mais pas les fleches

  4. #4
    Membre éclairé Avatar de kitsune
    Inscrit en
    Décembre 2004
    Messages
    341
    Détails du profil
    Informations personnelles :
    Âge : 39

    Informations forums :
    Inscription : Décembre 2004
    Messages : 341
    Par défaut
    Personne ?
    J'ai vu que les fleches etaient prevues pour les controles de l'application d'abord et qu'il faut donc changer les priorites ou inhiber les controles mais je ne trouve rien...
    J'aimerai que mes fleches soient interceptees par OnKeyDown dans ma fenetre OpenGL tout comme je le fais avec les caracteres.

    Merci

  5. #5
    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,

    Oui c'est bien OnKeyDown

    voici un ex:

    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
     
    void CMaClasse:OnKeyDown(UINT nChar,UINT nFlags)
    {
      switch (nChar)
      {
        case VK_LEFT:
        {
          // flèche gauche
          OnScroll(MAKEWORD(SB_LINELEFT,0xFF),0,TRUE);
          break;
        }
        case VK_RIGHT:
        {
          // flèche droite
          OnScroll(MAKEWORD(SB_LINERIGHT,0xFF),0,TRUE);
          break;
        }
        case VK_UP:
        {
          // flèche haut
          OnScroll(MAKEWORD(0xFF,SB_LINEUP),0,TRUE);
          break;
        }
        case VK_DOWN:
        {
          // flèche bas
          OnScroll(MAKEWORD(0xFF,SB_LINEDOWN),0,TRUE);
          break;
        }
        default:
        {
           CScrollView::OnKeyDown(nChar,nFlags);
           break;
        }
      }
    }
    Il faut s'assurer aussi que ta fenetre a le focus (fonction SetFocus()). Si tu ne veux pas que ta fenetre a le focus, tu peux intercepter OnSysKeyDown à la place (à condition que GetFocus()==NULL)

    @+

  6. #6
    Membre éclairé Avatar de kitsune
    Inscrit en
    Décembre 2004
    Messages
    341
    Détails du profil
    Informations personnelles :
    Âge : 39

    Informations forums :
    Inscription : Décembre 2004
    Messages : 341
    Par défaut
    Oui c'est bien ce que je fait et je donne bien le focus a ma fenetre mais des que je clique sur une fleche le focus revient automatiquement a ma boite de dialogue sur le premier de mes controles.

    Comment desactiver ca ?

    Merci !

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

Discussions similaires

  1. Réponses: 0
    Dernier message: 01/02/2008, 13h17
  2. Touches directionnels : annuler
    Par MayOL69bg dans le forum Général JavaScript
    Réponses: 1
    Dernier message: 12/04/2007, 22h25
  3. ecrire une touche directionnelle dans un fichier excel
    Par aA189 dans le forum Macros et VBA Excel
    Réponses: 6
    Dernier message: 06/08/2006, 20h41
  4. [gcc-unix] touches directionnelles
    Par yocco dans le forum C
    Réponses: 3
    Dernier message: 15/06/2006, 23h40
  5. Réponses: 8
    Dernier message: 18/09/2003, 18h12

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