NChar et l'evenement de clavier

[Résolu]
Signaler
Messages postés
190
Date d'inscription
dimanche 17 avril 2005
Statut
Membre
Dernière intervention
18 mars 2009
-
Messages postés
190
Date d'inscription
dimanche 17 avril 2005
Statut
Membre
Dernière intervention
18 mars 2009
-
salut
Sous MFC
void CAboutDlg::OnKeyDown(UINT nChar, UINT nRepCnt, UINT nFlags)
{
switch(nChar)
{
case VK_UP:
MessageBox("sniff sniff","rien 2",MB_OK);
break;
case VK_DELETE:
MessageBox("sniff sniff","rien 2",MB_OK);
  break;
default:
MessageBox("sniff sniff","default aussi ne marche pas :(",MB_OK);
}
}

le code ne marche pas :( quesque je vais faire .

a l'aide et merci avance

18 réponses

Messages postés
2333
Date d'inscription
samedi 28 février 2004
Statut
Membre
Dernière intervention
26 juillet 2013
36
Salut:

Etapes à suivre :
1. Créer votre boite de dialogue à l'aide de l'éditeur de ressources.
2. Clic droit
3. Choisir Class Wizard
4. Choisir l'option créer nouvelle classe pour cette boîte de dialogue.

5. Dans la partie du code où tu vas utiliser cette classe supposons qu'elle s'apelles "CMyDlg"

// N'oublie pas cette inclusion
// elle te permet d'utliser ta classe.
#include "MyDlg.h"
// ...
CMyDlg * dlg =  new CMyDlg;
dlg->DoModal ();
// ...
delete dlg;
//...

Bonne chance ...
Messages postés
2333
Date d'inscription
samedi 28 février 2004
Statut
Membre
Dernière intervention
26 juillet 2013
36
Salut :

CAboutDialog -----> boîte de dialogue "A propos ..." ???

si oui, Je pense que ton code ne marche que si la boîte de dialogue "A propos ..." est visible et à le focus de clavier.
Messages postés
190
Date d'inscription
dimanche 17 avril 2005
Statut
Membre
Dernière intervention
18 mars 2009

non , marche pas j'ai creer une nouvelle application et j'ai fais des tests mais aucun resultat :( ; il marche plus celle la .
Messages postés
190
Date d'inscription
dimanche 17 avril 2005
Statut
Membre
Dernière intervention
18 mars 2009

c'est bon j'ai trouver la solution , dit donc si ma fenetre n'est pas dans le focus comment va il savoir si mon racourcis et faite ?
Messages postés
2333
Date d'inscription
samedi 28 février 2004
Statut
Membre
Dernière intervention
26 juillet 2013
36
Salut:

Que ce que tu veux faire? (je n'ai pas compris ce que tu veux)

 
Messages postés
190
Date d'inscription
dimanche 17 avril 2005
Statut
Membre
Dernière intervention
18 mars 2009

premierement merci de votre reponce
2-voila ce que je veux faire
quand je click sur "z+i" ma fenetre principal va disparetre, et quand je click sur "z+v" mon application va apparaitre .
mais quand la fenetre principal et hors focus alors les boutons ne fonction plus :(
, a ton avis quesque je dois faire , et merci encore
Messages postés
2333
Date d'inscription
samedi 28 février 2004
Statut
Membre
Dernière intervention
26 juillet 2013
36
Salut:

Utilises :

SetForegroundWindow (hWnd);
SetFocus (hWnd);

Pour mettre votre fenêtre en premier plan (plus prioritaire) et pour le donner le focus de clavier.
Messages postés
2333
Date d'inscription
samedi 28 février 2004
Statut
Membre
Dernière intervention
26 juillet 2013
36
Salut:

Pour MFC utilises :

AfxGetMainWnd ()->SetForeground ();
AfxGetMainWnd ()->SetFocus ();
Messages postés
190
Date d'inscription
dimanche 17 avril 2005
Statut
Membre
Dernière intervention
18 mars 2009

1-marche pas , essai de creer une nouvelle application MFC de type Dialog Based puis executer le programme tu va voir que le focus est toujours dans le bouton ok :(

2- si ma fenetre est hors focus et que je fais quelque navigation internet puis je veux voir mon programme avec mon raccourcis "z+i" comment cela peut fais , la fenetre est hors focus plus il est invisible ???
DSL pour le drangement

et merci pour votre aide
Messages postés
2333
Date d'inscription
samedi 28 février 2004
Statut
Membre
Dernière intervention
26 juillet 2013
36
Salut:

Si j'ai bien compris: tu veux gérer l'appui sut deux touches simultanément.

1. pour mettre votre fenetre en premier plan, LA SEULE SOLUTION EST D'UTILISER LA TOUCHE ALT + TAB

2. sur cppfrance, il pas mal d'exemple qui montrent comment gérer l'appui sur deux touches en même temps.
Messages postés
190
Date d'inscription
dimanche 17 avril 2005
Statut
Membre
Dernière intervention
18 mars 2009

merci bcp , je vais chercher et si j'ai rien trouver je vais requestionné ici , merci encore et dsl pour le derangement

?? ???? ??? ????
Messages postés
2333
Date d'inscription
samedi 28 février 2004
Statut
Membre
Dernière intervention
26 juillet 2013
36
Salut:

Absolument pas. Il n'y aucun dérangement.
Bonne chance ...
_____________________________________________________
A.B. : toutes choses sont difficiles avant d'être simples.
Messages postés
190
Date d'inscription
dimanche 17 avril 2005
Statut
Membre
Dernière intervention
18 mars 2009

je suis encore blocké sur quelque chose :(
je voudrai ajouter une 2eme fenetre a mon projet , alors j'ai fais inserer->new form.
mais comment je vais l'apparaitre(la selectionné) quand je vais click dans une bouton ??? , dans visual basic c'est mafenetre.Show mais dans MFC ???? aucun aidé , dsl pour ce genre des questions mais je ne suis qu'un debutant dans MFC alors... DSL
Messages postés
2333
Date d'inscription
samedi 28 février 2004
Statut
Membre
Dernière intervention
26 juillet 2013
36
Salut:

Créer une classe MFC qui se base sur une boîte de dialogue.

Appeler la méthode DoModal () sur une instance de cette classe.

Tu vas avoit ta fenêtre.
Messages postés
190
Date d'inscription
dimanche 17 avril 2005
Statut
Membre
Dernière intervention
18 mars 2009

--------------------Configuration: Ma_Fenetre - Win32 Debug--------------------
Compiling...
Ma_FenetreDlg.cpp
C:\Program Files\Microsoft Visual Studio\MyProjects\Ma_Fenetre\Ma_FenetreDlg.cpp(176) : error C2065: 'My_Class_Form2' : undeclared identifier
C:\Program Files\Microsoft Visual Studio\MyProjects\Ma_Fenetre\Ma_FenetreDlg.cpp(176) : error C2146: syntax error : missing ';' before identifier 'variable'
C:\Program Files\Microsoft Visual Studio\MyProjects\Ma_Fenetre\Ma_FenetreDlg.cpp(176) : error C2065: 'variable' : undeclared identifier
C:\Program Files\Microsoft Visual Studio\MyProjects\Ma_Fenetre\Ma_FenetreDlg.cpp(177) : error C2228: left of '.DoModal' must have class/struct/union type
Error executing cl.exe.

Ma_FenetreDlg.obj - 4 error(s), 0 warning(s)

---------------
j'ai fais inserer -> newClass et pour le type c'est ClassForm
mais ca marche pas toujour le meme erreur :(
Messages postés
190
Date d'inscription
dimanche 17 avril 2005
Statut
Membre
Dernière intervention
18 mars 2009

DSL beaucoup pour tt les derangement que j'ai fais a toi et merci bcp bcp bcp a marche.
merciiiiiiiiiiii :D
Messages postés
2333
Date d'inscription
samedi 28 février 2004
Statut
Membre
Dernière intervention
26 juillet 2013
36
Salut:

Est ce que ça marcher?

Cordialement ...
Messages postés
190
Date d'inscription
dimanche 17 avril 2005
Statut
Membre
Dernière intervention
18 mars 2009

oui frere ca marche , merci beaucoup