Accueil > Forum > > > > keyboard
keyboard
samedi 8 mai 2004 à 11:21:42 |
keyboard

ToToL
|
J'ai créé un programme sauf que mon probleme est la vitesse de repetition des touche que je voudrai faire instantanné car sinon j'ai il y a un "blanc" de 0.5sec au debut. Merci et aurevoire Voici mon code #include <windows.h>
LRESULT CALLBACK WndProc (HWND, UINT, WPARAM, LPARAM) ;
#define NOM_FENETRE_1 "fenetre 1"
HINSTANCE hinst;
struct cercle {int x1;int y1; int x2; int y2;}mon_cercle;
int WINAPI WinMain (HINSTANCE hInstance, //numero definissant notre programme HINSTANCE hPrevInstance, //plus utilisé (à NULL° PSTR szCmdLine, //ligne de commande avec l'appel du programme int iCmdShow) //état du programme au démarrage { //variable devant contenir un numero identifiant la fenetre que nous allons creer HWND hwnd; //structure contenant les données d'un message MSG msg ; //classe de fenetre WNDCLASS wndclass; //Instance du programme hinst = hInstance; //place du cercle mon_cercle.x1=50; mon_cercle.x2=70; mon_cercle.y1=50; mon_cercle.y2=70; wndclass.style = CS_HREDRAW | CS_VREDRAW ; //demande à Windows de rafraichir la fenetre si sa largeur ou sa hauteur changent wndclass.lpfnWndProc = WndProc ; //donne l'adresse de la procédure de fenêtre wndclass.cbClsExtra = 0 ; //permet de reserver de l'espace mémoire interne... wndclass.cbWndExtra = 0 ; //...a windows pour notre appli (non neccessaire) wndclass.hInstance = hinst ; //a quel programme est destiné cette fenêtre (le notre) wndclass.hIcon = LoadIcon (NULL, IDI_APPLICATION) ;//definit l'icône de notre programme (icône par defaut)... wndclass.hCursor = LoadCursor (NULL, IDC_ARROW) ; //...le curseur (par defaut) wndclass.hbrBackground = CreateSolidBrush(RGB(255, 0,0));//...la couleur de fond (ici GRAY_BRUSH, mais il y'en a d'autres (WHITE_BRUSH, BLACK_BRUSH..) wndclass.lpszMenuName = NULL ; //permet de donner le nom d'une ressource menu (nous verrons cela plus tard) wndclass.lpszClassName = NOM_FENETRE_1 ; //nom que nous attribuons a la classe de fenêtre
//créer la classe de fenêtre et la sauvegarder sous ce nom RegisterClass (&wndclass); //creer la fenêtre a partir de notre classe de fenêtre hwnd = CreateWindow (NOM_FENETRE_1, // nom de la classe de fenêtre pour créer notre fenêtre "Mon premiere programme Win32 !", // titre de la fenêtre WS_CAPTION|WS_MINIMIZEBOX|WS_SYSMENU, // style de la fenêtre (ici superposable) 100, // position initiale coin superieur gauche en X 100, // position initiale coin superieur gauche en y 320, // largeur de départ 240, // hauteur de départ NULL, // pas de fenêtre parente NULL, // pas de menu hinst, // a quel programme est relié notre fenêtre NULL) ; // données de création //affiche la fenetre ShowWindow (hwnd, iCmdShow); //mettre son contenu à jour UpdateWindow (hwnd); while (GetMessage (&msg,NULL,0,0)) { //traduire les données du message pour qu'elles soient lisible TranslateMessage (&msg) ; //envoyer le message à Windows qui le transmettra à WINDOWPROC DispatchMessage (&msg) ; } return msg.wParam ; } LRESULT CALLBACK WndProc (HWND hwnd, UINT message, WPARAM wParam, LPARAM lParam) { //handle sur un device context HDC hdc ; //structure de dessin PAINTSTRUCT ps ; //structure contenant les coordonnées et la taille d'un rectangle RECT rect ;
switch (message) { //Si une touche est enfoncée case WM_KEYDOWN: if (HIWORD(GetKeyState(VK_UP))) { mon_cercle.y1 = mon_cercle.y1-5; mon_cercle.y2 = mon_cercle.y2-5; InvalidateRect(hwnd, NULL, TRUE); } if (HIWORD(GetKeyState(VK_DOWN))) { mon_cercle.y1 = mon_cercle.y1+5; mon_cercle.y2 = mon_cercle.y2+5; InvalidateRect(hwnd, NULL, TRUE); } if (HIWORD(GetKeyState(VK_RIGHT))) { mon_cercle.x1 = mon_cercle.x1+5; mon_cercle.x2 = mon_cercle.x2+5; InvalidateRect(hwnd, NULL, TRUE); } if (HIWORD(GetKeyState(VK_LEFT))) { mon_cercle.x1 = mon_cercle.x1-5; mon_cercle.x2 = mon_cercle.x2-5; InvalidateRect(hwnd, NULL, TRUE); } return 0;
//s'il faut redessiner le contenu de la fenetre case WM_PAINT: //obtenir les données graphique de la fenêtre hdc = BeginPaint (hwnd, &ps) ; //Selectionne le pinceau SelectObject(hdc, CreateSolidBrush(RGB(255, 0,0))); //faire en sorte que le fond du texte soit transparent (sinon le tour du texte //serait blanc sur nue fenêtre grise...) SetBkMode( hdc, TRANSPARENT); //obtenir la taille cliente de la fenêtre GetClientRect (hwnd, &rect); //Dessine un rectangle qui sera notre fond Rectangle(hdc, rect.left,rect.top,rect.right,rect.bottom); SelectObject(hdc, CreateSolidBrush(RGB(255, 255,0))); Ellipse(hdc, mon_cercle.x1, mon_cercle.y1, mon_cercle.x2, mon_cercle.y2); //fin de la procédure de dessinage EndPaint (hwnd, &ps) ; return 0 ;
//si faut quitter case WM_DESTROY: //alors mettre un message "WM_QUIT" dans la file d'attente PostQuitMessage (0) ; return 0 ; } //tous les messages dont nous ne nons servons pas sont renvoyés au système return DefWindowProc (hwnd, message, wParam, lParam) ; }
|
|
|
samedi 8 mai 2004 à 11:45:00 |
Re : keyboard

MoDDiB
|
gere le key up c'est mieux que gerer un temps ! et si la touche reste enfoncé plus de 0.5s sans keyup alors fo ecrire kan meme :)
|
|
samedi 8 mai 2004 à 11:56:35 |
Re : keyboard

ToToL
|
Meme si je fait avec le key up il y aura tjr un acou au depart puisque que sa vien d'un blanc fait par windows donc il y a un blanc de message pendant peut de temps et meme en mettant SystemParametersInfo(SPI_SETKEYBOARDDELAY,0,NULL,NULL); la répétition clavier ne s'enleve pas.
Ya aucun moyen d'enlever ce fichu truc ?
++
|
|
Cette discussion est classée dans : programme, fenêtre, hwnd, cercle, wndclass
Répondre à ce message
Sujets en rapport avec ce message
Affichage avec API Windows [ par PunkDude424 ]
Bon j'ai un problème avec l'affichage à l'aide de L'api win32Je suis débutant en la matière et j'ai le problème suivant.J'ai une application client se
Traduction en FR programme en fenetre devc++ [ par toto6311 ]
[code=cpp]#include /* Declare Windows procedure */ LRESULT CALLBACK WindowProcedure (HWND, UINT, WPARAM, LPARAM); /* Faites le nom de la class
Winbgim pitié de l'aide [ par jimmy30 ]
Voila bonjour en tous :D . j'ai UN gros probleme qui se dresse devant moi alors que je commencez a maitriser la sdl mes profs me demande d'utiliser w
trouver le HWND depuis un createProcess [ par curenor ]
Bonjour,je cherche à trouver le Hwnd de la fenêtre qui est créé par l'application lancée par un CreateProcessW.(je pense qu'il y a possibilité de fai
hook souris [ par ndubien ]
Bonjour,Je cherhe à faire un hook sur souris qui envoi à une fenêtre précédement déclarée (HWND hwndPrinc) tous les messages reçus...Je veux que ma fe
WSAAsyncselect pour client TCP [ par daviid00 ]
Bonjour, Je suis entrain de développer un client TCP qui se connecte de manière asynchrone à un serveur. Pour ce faire j'utilise la fonction WSAAsync
Langage C++ [ par Tom56340 ]
je me présente tom voila je suis pas non plus implacable sur l'informatique cependant je touche a tout et est un niveau satisfaisant qui me vaut de m
souci C++ [ par Tom56340 ]
je me présente tom voila je suis pas non plus implacable sur l'informatique cependant je touche a tout et est un niveau satisfaisant qui me vaut de m
Help for change a program in C++ for AVI file [ par mr_log ]
please how to change this program for read all size for AVI file? Ce programme permet d'aficher un fichier AVI bien précis width= 48 and lenght=80, so
Livres en rapport
|
Derniers Blogs
POUR RAPPEL ! LES SPéCIFICATIONS DES PROTOCOLES OFFICE ET SHAREPOINT SONT DISPONIBLES SUR MSDNPOUR RAPPEL ! LES SPéCIFICATIONS DES PROTOCOLES OFFICE ET SHAREPOINT SONT DISPONIBLES SUR MSDN par neodante
Quelle est le point commun entre : Microsoft il y a 10 ans et Apple aujourd'hui ? Réponse: avoir une politique de protocoles propriétaires et fermés :) Car pour rappel (si si je vous assure c'est important de le rappeler), la majorité des spécifications e...
Cliquez pour lire la suite de l'article par neodante JOYEUX ANNIVERSAIRE NIXJOYEUX ANNIVERSAIRE NIX par ebartsoft
Souhaitons un bon et joyeux anniversaire à notre hôte à tous, Nix.
Je ne le répéterais jamais assez mais sans lui rien ne serait possible. Il défit en permanence les lois de la gravité et comme il le dit si bien, si tu lui fais confiance ça devra...
Cliquez pour lire la suite de l'article par ebartsoft IMAGINE CUP 2012, MAKE A SIGN EN FINALEIMAGINE CUP 2012, MAKE A SIGN EN FINALE par junarnoalg
Voilà qui est fait, la nouvelle est officielle ! L'équipe belge "Make a Sign" va au pays des kangourous défendre son projet dans la catégorie Software Design. http://www.imaginecup.com/CompetitionsContent/Competition/WorldwideFinalists.aspx V...
Cliquez pour lire la suite de l'article par junarnoalg KINECT 1.5 IS OUT !KINECT 1.5 IS OUT ! par Vko
La version 1.5 du Kinect For Microsoft vient tout juste de sortir ! Plein de nouveautés: Tracking de squelette en Near Mode Détection en position assise Détection faciale avec un SDK dédié Documentation et des guideline (enfin) Un out...
Cliquez pour lire la suite de l'article par Vko LES ACTUALITéS DE LA SEMAINE SUR C2I.FR (14 MAI - 20 MAI) LES ACTUALITéS DE LA SEMAINE SUR C2I.FR (14 MAI - 20 MAI) par richardc
Mise à jour des Web API du 14 Mai
Réservez dès maintenant votre journée du 20 juin pour le Windows Azure Dev Camp 2012 à Paris
Mise à jour de Team Foundation Service
MechCommander 2 sur Windows 8
Entity Framework 5 Release Candidate e...
Cliquez pour lire la suite de l'article par richardc
Forum
MATLAB PROGRAMME MATLAB PROGRAMME par wahab1087
Cliquez pour lire la suite par wahab1087 RGB2GRAYRGB2GRAY par musa18
Cliquez pour lire la suite par musa18
Logiciels
sDEVIS-FACTURES vlPRO (8.1.0.3)SDEVIS-FACTURES VLPRO (8.1.0.3)sDEVIS-FACTURES vlPRO a été mis au point pour les particuliers, créateurs, entrepreneurs, artisa... Cliquez pour télécharger sDEVIS-FACTURES vlPRO 974 Application Server (12.2.4.6)974 APPLICATION SERVER (12.2.4.6)Développez de puissantes applications dans un environnement de 'cloud computing', clusterisé, séc... Cliquez pour télécharger 974 Application Server vPicture (1.4.2.1)VPICTURE (1.4.2.1)Avec vPicture, hébergez vos images facilement et rapidement.
vPicture est un utilitaire simple, ... Cliquez pour télécharger vPicture Easy-Planning (2.2.1.6)EASY-PLANNING (2.2.1.6)Easy-Planning permet de créer des plannings sous la représentation de diagrammes et est adapté au... Cliquez pour télécharger Easy-Planning COM-BACKUP (2.0)COM-BACKUP (2.0)
COM-BACKUP est un logiciel de sauvegarde qui permet de planifier les sauvegardes de vos dossiers ...
Cliquez pour télécharger COM-BACKUP
|