XorCo
Messages postés11Date d'inscriptionmercredi 14 avril 2004StatutMembreDernière intervention22 septembre 2004
-
14 sept. 2004 à 18:33
racpp
Messages postés1909Date d'inscriptionvendredi 18 juin 2004StatutModérateurDernière intervention14 novembre 2014
-
15 sept. 2004 à 18:51
Salut !
QQun pourrais me dire comment je pourrais faire pour par example quand j'appuye sur F1 à l'écran il m'affiche "vous avez appuyez sur F1" et quand j'appuye sur F2 il m'affiche "vous avez appuyer sur F2"
Donc cela devrait ressembler à:
if ( touche(F1) ) {
printf("vous avez appuyer sur F1");
}
if ( touche(F2) ) {
printf("vous avez appuyer sur F1");
}
Merci !
PS: essayer d'être quand-même assé précis .. ça fait deux semaine que je cherche sur le net et toujours sans succès... vs êtes mon dernier éspoir :big)
Tout ce que j'ai trouvé c'était des trucs genre kbhit() mais ça marche pas trop ... sinon j'ai encore trouvé sur WM_KEYDOWN ... mais ça j'y capte rien ! faut un truc simple quoi ;)
racpp
Messages postés1909Date d'inscriptionvendredi 18 juin 2004StatutModérateurDernière intervention14 novembre 201417 15 sept. 2004 à 04:24
Je viens de poster un petit source qui montre comment utiliser les touches F1-F12, touches fléchées, INSER, SUPPR, DEBUT, FIN, PAGE UP, et PAGE DOWN, dans un projet console:
http://www.cppfrance.com/code.aspx?ID=26179
tu peux aussi utiliser une ressource et CreateDialogParam(), il ne te restera plus qu'a faire la WndProc, rien de bien mechant,
en même pas 20 lignes de code, c'est réglé.
tu dois comprendre comment est crée une boite de dialogue ou une fenetre et la gestion des messages qui en découle.
tout ça, c'est vraiment la base, trouve toi des exemples Hello World, et autres tuts qui fourmillent sur le net ...
XorCo
Messages postés11Date d'inscriptionmercredi 14 avril 2004StatutMembreDernière intervention22 septembre 2004 14 sept. 2004 à 19:18
Ouais oki. Mais si je suis bêtement en mode console...Que dois-je faire avec mon kbhit() ? Comment dois-je associé mon kbhit avec les touches ? Genre je dois avoir une fonction qui retourne leur valeur ASCII et puis ? Voilà le début que j'avais ...
int main()
{
char touche;
touche = getch();
if ( kbhit() )
{
switch(touche)
{
case: valeur_F1; // Comment est-ce que j'arrive à cet valeur ?
printf("%d",touche);
break;
case: valeur_F2; // Comment est-ce que j'arrive à cet valeur ?
printf("%d",touche);
break;
}
}
system("PAUSE");
return 0;
}
Mais bon comment dois-je continuer ?
Merci!
PS: J'arrive même plus à retrouver la fonction kbhit dans mes headers.. ça marche plus. J'utilise Dev-C++. Que dois-je faire pour retrouver cet fonction ?
cs_eRoZion
Messages postés241Date d'inscriptionvendredi 23 mai 2003StatutMembreDernière intervention 8 octobre 20071 14 sept. 2004 à 19:52
Alors pour retrouver cette fonction faut inclure <conio.c> au lieu de <conio.h> dans devcpp.
Autrement, si tu veux faire de la jolie console, rien de mieux que les outils borland (c'est d'ailleurs ce qu'il faudra que tu utilises si tu veux te servir de conio.h). C'est d'ailleurs la solution la plus simple.
Quant à ton problème, c'est pas kbhit() qu'il te faut utiliser, en tous cas c'est pas exactement ce que tu cherche meme si ça se couple très bien avec ce genre de problème.
Toi ce qu'il te faut c'est la fonction "getch()" toujours dans conio.h
Regarde aussi à quoi serts "kbhit()" concernant le clavier parce que tu vas vite en avoir besoin.
NB: Attention, les touches genre F1 renvoie deux char au lieu d'un seul, pour les traiter il suffit de faire un cas spécial lorsque la valeur de key==0 alors key==getch() et tu traite cette seconde valeur en tenant compte du fait qu'il s'agisse d'un touche spéciale.
NB2: Regarde aussi du coté de "bioskey()".
eRoZion
Vous n’avez pas trouvé la réponse que vous recherchez ?
XorCo
Messages postés11Date d'inscriptionmercredi 14 avril 2004StatutMembreDernière intervention22 septembre 2004 14 sept. 2004 à 20:59
Oki parfait je vais essaye Borland C++ Builder. Par contre il y a encore 2 points pas très claire...
1) J'ai pas très bien compris ton explication pour les touches F1,...
donc je fais:
unsigned char key;
key=getch();
if ( key == 0 ) {
if ( key==getch() ) {
// et puis ?
}
}
--------
2) La fonction bioskey() m'allaire très intéressante! mais ou puis-je trouver le bios.h pour cette fonction ? Y a pas moyen que tu me l'envoie ou un truc du style ?
racpp
Messages postés1909Date d'inscriptionvendredi 18 juin 2004StatutModérateurDernière intervention14 novembre 201417 15 sept. 2004 à 01:23
Salut,
Voici la solution de ton problème :
http://www.cppfrance.com/forum.v2.aspx?ID=284213 Le petit exemple que tu y trouveras, montre comment récupérer le code ascii d'une touche alphanumérique ou le code SCAN de n'importe quelle autre touche comme F1-F12. Pour récupérer le code SCAN , comme l'a dit eRozion, il faut appeler getch deux fois. A toi d'utiliser le code obtenu comme tru veux dans ton application. Ca marche avec tous les compilateurs.
racpp
Messages postés1909Date d'inscriptionvendredi 18 juin 2004StatutModérateurDernière intervention14 novembre 201417 15 sept. 2004 à 18:51
Salut,
eRoZion > Il est vrai que "conio.h" n'est pas une librairie AINSI-C mais elle existe dans tous les compilateurs pour MS-DOS et Windows :
-Tous les compilateurs de Microsoft (Visual C++ etc).
-Tous les compilateurs de Borland (Turbo, Builder etc).
-Les compilateurs DJGPP.
Pour les autres, qui appartiennent initialement au monde UNIX , il existe des émulations:
-Dev c++: remplacer "conio.h" par "conio.c".
-LCC Win32: fichier "conio.h" téléchargeable.
Moi je ne travaille que sur DOS et Windows, c'est pour cela que j'ai un peu généralisé en disant "tous les compilateurs".
A bientôt.