Clavier téléphonique

aabhanane Messages postés 34 Date d'inscription jeudi 31 mars 2005 Statut Membre Dernière intervention 28 juillet 2005 - 9 juin 2005 à 15:28
aabhanane Messages postés 34 Date d'inscription jeudi 31 mars 2005 Statut Membre Dernière intervention 28 juillet 2005 - 10 juin 2005 à 13:58
Bonjour à tous,

j'ai besoin de réaliser une interface d'un clavier téléphonique en visual c++.

Donc, j'ai fait mon interface mais j'ai un petit problème: c'est
comment dire à mon application que quand on clique deux fois de suite
sur le même numero, c'est autre chose qui doit s'afficher.

Je m'explique: quand je clique deux fois sur la touche 2 on affiche A.( Le rôle du clavier d'un téléphone).

Est ce que quelqu'un pourrait me donner une indée svp?

Merci d'avance pour votre aide,

Hanane.

9 réponses

cs_Joky Messages postés 1787 Date d'inscription lundi 22 novembre 2004 Statut Membre Dernière intervention 31 janvier 2009 2
9 juin 2005 à 16:23
Bé tu crées une variable int DernierClik qui contiendra le dernier numéro clické, et un teste lors du nouveau click,
if(NouveauCick == DernierClick)
{
ValeurClick = Ce que tu veux :) lol
}
Il doit avoir mieu, cet exemple ne prend pas en compte le temps entre chaque click...


void Aurevoir( void ); //Bonne journée
0
vecchio56 Messages postés 6535 Date d'inscription lundi 16 décembre 2002 Statut Membre Dernière intervention 22 août 2010 14
9 juin 2005 à 16:32
Pour le temps entre chaque clic, faire un timer de n ms. Si une bouton
est choisi avant la fin du timer, on reset le timer, sinon (le timer
est terminé) on valide la touche actuelle.
0
aabhanane Messages postés 34 Date d'inscription jeudi 31 mars 2005 Statut Membre Dernière intervention 28 juillet 2005
9 juin 2005 à 16:34
Oui, justement j'ai pensé à cette solution. mais comme tu as dit, ca ne gère pas le temps entre chaque click.

J'ai essayé de faire ça avec des timers mais comme c'est la première
fois que je travaille avec cette notion, j'ai pas reussi. Si quelqu'un
peut m'expliquer comment ca marche.

Merci,

Hanane
0
vecchio56 Messages postés 6535 Date d'inscription lundi 16 décembre 2002 Statut Membre Dernière intervention 22 août 2010 14
9 juin 2005 à 16:38
Tu utilises SetTimer. Tu as 2 possibilités: soit donner une TIMERPROC
(4e param), dans ce cas cette fonction sera appelée à intervalle
régulier (une seule fois pour nous), soit tu donnes pas et dans ce cas
tu dois fournir une HWND qui recevra un WM_TIMER dans sa WndProc. C'est
le 3e paramètre qui te permet de fixer le temps à attendre
0

Vous n’avez pas trouvé la réponse que vous recherchez ?

Posez votre question
ctx_man Messages postés 285 Date d'inscription mardi 28 décembre 2004 Statut Membre Dernière intervention 20 janvier 2013 3
10 juin 2005 à 10:21
Cette solution ne serait-elle pas plus simple que de mettre en oeuvre un timer qui envoi des evènement ? (je ne suis pas vraiment au point sur ce qui est preferable de faire)

//Mise à zero du timer
long Timer = GetTickCount(); //Nombre de milliseconde ecoulées depuis le
//démarrage du pc

//Verifier si le temps est dépassé, X = nombres de millisecondes pendant lesquel
//le timer sera actif
if( (Timer + X) < GetTickCount() )
{
//timer actif
if(NouveauCick == DernierClick)
{
ValeurClick = "Ce que tu veux :) lol" ;
}
}
else
{
//timer inactif
Timer = GetTickCount();
}

J'ai repris le code de Joky concernant la detection du nouveau clique
0
ctx_man Messages postés 285 Date d'inscription mardi 28 décembre 2004 Statut Membre Dernière intervention 20 janvier 2013 3
10 juin 2005 à 10:22
Lol désoler d'avoir colorer seulement la moitier du code, je suis pas très bien reveillé !
0
aabhanane Messages postés 34 Date d'inscription jeudi 31 mars 2005 Statut Membre Dernière intervention 28 juillet 2005
10 juin 2005 à 12:12
Resalut tout le monde,

merci à vous tous pour vos réponse.

Pour la derniere proposition, comment on reccupere X = nombres de
millisecondes pendant lesquel le timer sera actif? je dois creer un
timer?

merci,

hanane
0
ctx_man Messages postés 285 Date d'inscription mardi 28 décembre 2004 Statut Membre Dernière intervention 20 janvier 2013 3
10 juin 2005 à 13:42
LoL
exemple :
j'appuis sur la touche 2 pour obtenir un A et je veux obtenir un deuxieme A, je dois donc attendre un certain temps afin de passer au second au lieu que ca modifie mon A deja taper. Ce temps c'est ton X.

Donc si tu veux que que pour avoir un B il faut appuyer 3 sur sur la touche 1 et que chacune de ces pressions doit se faire avec maximum 2 secondes d'intervalle, alors
X = 2000
Pour finir, X est l'equivalent de l'intervalle d'un timer classique
Le travail c'est la santé, ne rien faire c'est la préservé !!!
0
aabhanane Messages postés 34 Date d'inscription jeudi 31 mars 2005 Statut Membre Dernière intervention 28 juillet 2005
10 juin 2005 à 13:58
Ok, je crois que j'ai compris. Je vais essayer de faire ca.

Merci encore une fois.

Hanane
0
Rejoignez-nous