begin process at 2012 05 29 03:21:27
  Trouver un code source :
 
dans
 
Accueil > Forum > 

Archive C/C++

 > 

Archives

 > 

Au secours

 > 

gestion clavier sous mfc


Derniers messages déposésPoser une question dans le forum ou lancer une discussion

gestion clavier sous mfc

mardi 2 mars 2004 à 09:57:52 | gestion clavier sous mfc

dambeaufort


bonjour a tous,
j'ai regarder les messages deja preent dans le forum mais je n'arrive pas a efectuer la chose suivante:

J'aimerais sous une application mfc avoir une boucle du type:

while (i>0) {if (touche 'Y' enfoncee) {i=i-1}}

explication: une fois entrer dans la boucle, je veux gerer un deplacement que lorsque une touche est enfoncee. Si la touche est relachee, le deplacement se met en pause jusqu'a un nouvelle appui sur la touche en qst.

c donc tout simple mais je n'arrive pas a gerer le clavier dans mon application mfc
Pourriez vous m'aider.

Merci encore
mardi 2 mars 2004 à 14:16:18 | Re : gestion clavier sous mfc

PunkDude424

Il faut que tu catch les message envoyer par le clavier dans defwindowproc ou pretranslatemessage

BOOL CWindowsDisplay::PreTranslateMessage(MSG* pMsg)
{
switch(pMsg->message)
{
case WM_KEYDOWN:
break;
}
return CDialog::PreTranslateMessage(pMsg);
}


mardi 2 mars 2004 à 14:33:01 | Re : gestion clavier sous mfc

dambeaufort


ok je te remercie, ta solutions est excellente. Seul petit probleme ou plutot interrogation, est il possible de faire la meme chose suivant tel ou tel touche de clavier enfonce.

ex actuellement le message"message" s'affiche lorsque je j'appui sur une touche quelquonque. est il possible de limiter son affichage que lorsque la touche entree est pressé?

BOOL CAppliDlg::PreTranslateMessage(MSG* pMsg)
{
switch(pMsg->message)
{
case WM_KEYDOWN: m_consigne.ReplaceSel("message");
break;
}
return CDialog::PreTranslateMessage(pMsg);
}

Merci encore
mardi 2 mars 2004 à 15:31:00 | Re : gestion clavier sous mfc

PunkDude424

BOOL CAppliDlg::PreTranslateMessage(MSG* pMsg)
{
switch(pMsg->message)
{
case WM_KEYDOWN:
if((pMsg->wParam) == VK_Y)
{
}
break;
}
return CDialog::PreTranslateMessage(pMsg);
}

mardi 2 mars 2004 à 15:32:30 | Re : gestion clavier sous mfc

PunkDude424

tu peux retrouver toutes les virtual key sur msdn

http://msdn.microsoft.com/library/default.asp?url=/library/en-us/w98ddk/hh/w98ddk/keycnt_4fqw.asp
mardi 2 mars 2004 à 15:37:58 | Re : gestion clavier sous mfc

dambeaufort


ok je vais tester.
Reste un hic, si tu pouvais m'aider.....

ta fonction me pêrmet de voir lorsque une touche du clavier est enfonce, c ok. mais comment l'inserer dans ma structure qu e j'ai definis ci dessus.
Une fois dans le while, je ne voit pas comment tester en continu si un bouton du clavier est enfonce......
mardi 2 mars 2004 à 16:13:47 | Re : gestion clavier sous mfc

PunkDude424

tu te mets un variable dans ta classe.....par exemple m_KeyPressed....et quand tu rentre dans pretranslatemessage et dans WM_KEYDOWN tu mets la varaible a true par exemple et quand tu va dans WM_KEYUP tu mets la variable a false.....alors dans ta fonction tu mets ta boucle en mettant

while(m_KeyPressed)
....
mardi 2 mars 2004 à 16:46:04 | Re : gestion clavier sous mfc

dambeaufort


et bien tu vas dire que je suis nul, mais je n'y arrive pas.
Voila ce que g pour l'instant:

//fct gerant l'acqui du clavier
BOOL CAppliDlg::PreTranslateMessage(MSG* pMsg)
{
switch(pMsg->message)
{
case WM_KEYDOWN:
if((pMsg->wParam) == VK_DELETE) {m_clavierok=TRUE;}
else {m_clavierok=FALSE;}
break;
}
return CDialog::PreTranslateMessage(pMsg);
}


//fct de lancement de procedure
void CAppliDlg::Onlancer()
{
char cconsignebarre;
long consignebarre;
int Pas=1; int gap;

if (m_mob ) {consignebarre=m_consignebarre.GetPos();
gap=consignebarre;
while (m_clavierok==TRUE)
{while (gap>0.01)
{Sleep(500);
m_progress.SetPos(consignebarre-gap);
ltoa(consignebarre-gap,&cconsignebarre,10);
m_consigne.ReplaceSel(&cconsignebarre);
gap=gap-Pas;m_clavierok=FALSE;}
}
}
else {m_consigne.ReplaceSel("no ");}
}



Le probleme c que ca marche mais je voudrais une confirmation que le bouton del est enfoncee a chaque pas.
Pour l'instant les pas ce deroule que si j'ai enfonce le bouton del initialement. si je le relache j'aimerais que l'evolution des pas s'arrete.

Merci.
mardi 2 mars 2004 à 17:01:09 | Re : gestion clavier sous mfc

PunkDude424

et bien tu vas dire que je suis nul, mais je n'y arrive pas.
Voila ce que g pour l'instant:

//fct gerant l'acqui du clavier
BOOL CAppliDlg::PreTranslateMessage(MSG* pMsg)
{
switch(pMsg->message)
{
case WM_KEYDOWN:
if((pMsg->wParam) == VK_DELETE)
{
m_clavierok=TRUE;
}
break;
case WM_KEYUP:
if((pMsg->wParam) == VK_DELETE)
{
m_clavierok= FALSE;
}
break;
}
return CDialog::PreTranslateMessage(pMsg);
}



mardi 2 mars 2004 à 17:08:48 | Re : gestion clavier sous mfc

dambeaufort


oui mais ce que je veux dire c que une fois que tu as lancer le "mouvement" donc que tu es entrer dans la boucle du while(gap>0.01), le changement d'etat du bouton DEL ne fera rien a l'execution du mouvement.
Ce que je voudrais c que le mouvement s'arrete des que le bouton est relache.

1 2

Cette discussion est classée dans : arrive, gestion, clavier, mfc, touche


Répondre à ce message

Sujets en rapport avec ce message

gestion du clavier [ par Myts ] SalutJe programme sous TC++ (turbo c++) sous dos.Et j'ai un probleme concernant la gestion du clavier.Mon jeux, prochainement sur ce site, doit effect enregistrer dans fichier txt toute les touche taper sur clavier [ par Goorou ] bonjour jaimerais savoir comment faire pour faire un prog qui creer un fichier txt enregistre les touche taer sur le clavier la minute qui sui et enr Prog MFC [ par thebestvinz ] Bonjour à tous, je viens de découvrir la programmation avec les mfc. Mon seul problème est que je n'ai jamais eu de cours la dessus. G pas mal de tuto Probleme MFC [ par Baygon_Vert ] Voila,je commence a m interesser aux MFC depuis quelques jours, et malgré les heures passées dans la MSDN, je n arrive pas a repondre a un probleme si gestion du clavier avec Glut [ par spirit ] salut à tous,je sais gérer les fonctions glutKeyboardFunc et glutSpecialFunc mais je n'arrive pas à détecter la combinaison de touches "Ctrl+A" alors Win32 simulation de touche du clavier [ par zibo3 ] Bonjour, j'ai un petit souci, j'aimerai pouvoir simuler l'appuie sur la touche TAB mais avec la touche SHIFT appuyé.Je sais que je dois envoyé un évén Gestion du clavier [ par vangeurmasker ] Bonjour.Je cherche une fonction qui puisse me rendre le code des touches enfoncés sur le clavier mais qui n'attende pas un nouvel appuis contrairement les touche F..du clavier [ par Battousai ] salut,je suis entrain d'ecrir un programme en c en mode dos (que j'éspere poster sur ce site), et j'aimerait y ajouter l'utilisation des toucher F1,F2 MFC - touche échap [ par magic_Nono ] BonjourJe ne sais pas, mais c'est la 2nd projet ou ça arrivesur une dialogue en utilisant uniquement le classwizardla touche échap se trouve redirigée Quels sont les paramètres d'un Hook clavier [ par LaPatoshe ] bonjour et meilleurs voeux.Je viens de créer une DLL contenant un hook interceptant les messages du clavier (WH_KEYBOARD). Losrque l'utilisateur press


Nos sponsors


Sondage...

CalendriCode

Mai 2012
LMMJVSD
 123456
78910111213
14151617181920
21222324252627
28293031   

Consulter la suite du CalendriCode

A découvrir



 
Développement réalisé par Nicolas SOREL (Nix) avec l'aide de : Cyril DURAND et Emmanuel (EBArtSoft), Merci à Vincent pour ses précieux conseils.
CodeS-SourceS.com© Toute reproduction même partielle est interdite sauf accord écrit du Webmaster
CodeS-SourceS.com© est une marque déposée tous droits réservés

Google Coop CodeS-SourceS Google Coop CodeS-SourceS
Temps d'éxécution de la page : 0,655 sec (3)

Nous contacter | Annoncer sur CodeS-SourceS | Mentions légales