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.
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.
This is NOT my boyfriend's computer.
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)..
Ce qui est affirmé sans preuve peut être nié sans preuve Euclide.
Les conversions numériques en C,C++,C++/CLI
DLL d'extensions : écriture d'un plug-in de classe
Démarrer avec les MFC 2/2
Création d'un ActiveX MFC
Intégration d'une imprimante PDF pour éditions automatisées
Migrer du code de Visual C++ 6.0 vers Visual C++ 2005
Démarrer avec les MFC sous Visual C++1/2
la Faq Visual C++ 500 Q/R,Mon blog
Aide en Ligne MFC
Cours et tutoriels C++ - FAQ C++ - Forum C++.
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
This is NOT my boyfriend's computer.
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
This is NOT my boyfriend's computer.
Salut,
Oui c'est bien OnKeyDown
voici un ex:
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)
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; } } }
@+
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 !
This is NOT my boyfriend's computer.
je vois pas trop comment ton programme est structuré au niveau des fenetres ... pourquoi tu parles de boite de dialogue ???
donnes moi plus d'infos sur le lien entre cette fenetre et ta boite de dialogue...
@+
de toute façon c'est mort ,si tu as des contrôles tu ne peux espérer contrôler la scrollbar avec les touches si il y a des contrôles actifs dans la fenêtre de traitement .
du point de vue de l'utilisateur je ne vois pas comment ça peut fonctionner ...
Ce qui est affirmé sans preuve peut être nié sans preuve Euclide.
Les conversions numériques en C,C++,C++/CLI
DLL d'extensions : écriture d'un plug-in de classe
Démarrer avec les MFC 2/2
Création d'un ActiveX MFC
Intégration d'une imprimante PDF pour éditions automatisées
Migrer du code de Visual C++ 6.0 vers Visual C++ 2005
Démarrer avec les MFC sous Visual C++1/2
la Faq Visual C++ 500 Q/R,Mon blog
Aide en Ligne MFC
Cours et tutoriels C++ - FAQ C++ - Forum C++.
Alors je reprends.
J'ai une boite de dialogue avec des controles et une fenetre OpenGL.
Oublions les scrollbar.
J'aimerai effectuer des actions dans ma fenetre OpenGL quand j'appuie sur les fleches. Sauf que meme en ayant le focus dans ma fenetre, des que j'appuie sur l'une des fleches le focus revient automatiquement sur le premier controle de ma boite de dialogue.
Aucun moyen de changer cela ?
Merci.
This is NOT my boyfriend's computer.
Je pense a un WM_GETDLGCODE qui n'est pas pris en charge par ta fenetre OpenGL.
Essaye ça:
Sans oublier le ON_WM_GETDLGCODE() et le proto qui va bien ...
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5 UINT COpenGLCtrl::OnGetDlgCode() { return DLGC_WANTARROWS; }
Essaye d'autre variante aussi comme DLGC_WANTMESSAGE ...
C'est assez capricieux comme fonction
@+
Ah super ca marche !
Merci beaucoup, je ne connaissais pas du tout cette fonction...
This is NOT my boyfriend's computer.
Vous avez un bloqueur de publicités installé.
Le Club Developpez.com n'affiche que des publicités IT, discrètes et non intrusives.
Afin que nous puissions continuer à vous fournir gratuitement du contenu de qualité, merci de nous soutenir en désactivant votre bloqueur de publicités sur Developpez.com.
Partager