|
Trouver une ressource
Vous ne trouvez pas de réponse à votre problème ? Alors posez la question dans le forum. Souvenez-vous qu'il n'y a jamais de question bête, mais rester dans l'ignorance parce que l'on n'ose pas poser une question, ça c'est une erreur !
Sujet : Problème avec WM_KEYDOWN: [ Archives / API ] (cognac)
Informations & options pour cette discussion
mardi 8 avril 2003 à 05:05:13 |
Problème avec WM_KEYDOWN:

cognac
|
Pourquoi est-ce que "j" est toujours égal à 2 lorsque je presse F1(même la première fois). Je pensais qu'à chaque fois que je presse F1 "j" augmente de 1. Sauf si >2 alors = 0. Voici une partie du code: LRESULT CALLBACK WndProc(HWND hwnd, UINT msg, WPARAM wParam, LPARAM lParam) { switch(msg) { case WM_CREATE: g_hfFont = GetStockObject(DEFAULT_GUI_FONT); break; case WM_CLOSE: DestroyWindow(hwnd); break; case WM_KEYDOWN: switch (wParam) { case VK_F1: j= j + 1; InvalidateRect(hwnd, NULL, TRUE); break; case VK_ESCAPE: DestroyWindow(hwnd); break; } if (j>2) {j = 0;} InvalidateRect(hwnd, NULL, TRUE); case WM_PAINT: { RECT rcClient; PAINTSTRUCT ps; HDC hdc = BeginPaint(hwnd, &ps); ETC... Pouvez-vous m'aider Merci
|
|
|
mardi 8 avril 2003 à 13:44:43 |
Re : Problème avec WM_KEYDOWN:

BruNews
|
Verifie le deroulement de tes switch, case etc... if (j>2) j=0 devrait se trouver dans case VK_F1 je pense. Je mettrais: if(++j > 2) j = 0; BruNews, ciao...
------------------------------- Réponse au message : -------------------------------
> Pourquoi est-ce que "j" est toujours égal à 2 lorsque je presse F1(même la première fois). Je pensais qu'à chaque fois que je presse F1 "j" augmente de 1. Sauf si >2 alors = 0. > > Voici une partie du code: > > LRESULT CALLBACK WndProc(HWND hwnd, UINT msg, WPARAM wParam, LPARAM lParam) > { > switch(msg) > { > case WM_CREATE: > g_hfFont = GetStockObject(DEFAULT_GUI_FONT); > break; > > case WM_CLOSE: > DestroyWindow(hwnd); > break; > > case WM_KEYDOWN: > switch (wParam) > { > case VK_F1: > j= j + 1; > InvalidateRect(hwnd, NULL, TRUE); > break; > > case VK_ESCAPE: > DestroyWindow(hwnd); > break; > } > if (j>2) > {j = 0;} > InvalidateRect(hwnd, NULL, TRUE); > case WM_PAINT: > { > RECT rcClient; > > PAINTSTRUCT ps; > HDC hdc = BeginPaint(hwnd, &ps); > > ETC... > > Pouvez-vous m'aider > Merci
|
|
|
mardi 8 avril 2003 à 13:50:17 |
Re : Problème avec WM_KEYDOWN:

cognac
|
Merci
J'ai fais les modif mais sans succès. Aussitôt que je presse F1 la valeur de "j" devient 2 et reste 2 même si je presse F1 plusieurs fois.
------------------------------- Réponse au message : -------------------------------
> Verifie le deroulement de tes switch, case etc... > if (j>2) j=0 devrait se trouver dans case VK_F1 je pense. > Je mettrais: if(++j > 2) j = 0; > BruNews, ciao... > > > ------------------------------- > Réponse au message : > ------------------------------- > > > Pourquoi est-ce que "j" est toujours égal à 2 lorsque je presse F1(même la première fois). Je pensais qu'à chaque fois que je presse F1 "j" augmente de 1. Sauf si >2 alors = 0. > > > > Voici une partie du code: > > > > LRESULT CALLBACK WndProc(HWND hwnd, UINT msg, WPARAM wParam, LPARAM lParam) > > { > > switch(msg) > > { > > case WM_CREATE: > > g_hfFont = GetStockObject(DEFAULT_GUI_FONT); > > break; > > > > case WM_CLOSE: > > DestroyWindow(hwnd); > > break; > > > > case WM_KEYDOWN: > > switch (wParam) > > { > > case VK_F1: > > j= j + 1; > > InvalidateRect(hwnd, NULL, TRUE); > > break; > > > > case VK_ESCAPE: > > DestroyWindow(hwnd); > > break; > > } > > if (j>2) > > {j = 0;} > > InvalidateRect(hwnd, NULL, TRUE); > > case WM_PAINT: > > { > > RECT rcClient; > > > > PAINTSTRUCT ps; > > HDC hdc = BeginPaint(hwnd, &ps); > > > > ETC... > > > > Pouvez-vous m'aider > > Merci >
|
|
|
mardi 8 avril 2003 à 14:00:23 |
Re : Problème avec WM_KEYDOWN:

BruNews
|
Si ton truc est pas trop long, poste le bnutiles@wanadoo.fr je te le retourne fonctionnant. Le but est bien qu'il alterne de 0 a 1 ? BruNews, ciao...
------------------------------- Réponse au message : -------------------------------
> Merci > > J'ai fais les modif mais sans succès. Aussitôt que je presse F1 la valeur de "j" devient 2 et reste 2 même si je presse F1 plusieurs fois. > > > > ------------------------------- > Réponse au message : > ------------------------------- > > > Verifie le deroulement de tes switch, case etc... > > if (j>2) j=0 devrait se trouver dans case VK_F1 je pense. > > Je mettrais: if(++j > 2) j = 0; > > BruNews, ciao... > > > > > > ------------------------------- > > Réponse au message : > > ------------------------------- > > > > > Pourquoi est-ce que "j" est toujours égal à 2 lorsque je presse F1(même la première fois). Je pensais qu'à chaque fois que je presse F1 "j" augmente de 1. Sauf si >2 alors = 0. > > > > > > Voici une partie du code: > > > > > > LRESULT CALLBACK WndProc(HWND hwnd, UINT msg, WPARAM wParam, LPARAM lParam) > > > { > > > switch(msg) > > > { > > > case WM_CREATE: > > > g_hfFont = GetStockObject(DEFAULT_GUI_FONT); > > > break; > > > > > > case WM_CLOSE: > > > DestroyWindow(hwnd); > > > break; > > > > > > case WM_KEYDOWN: > > > switch (wParam) > > > { > > > case VK_F1: > > > j= j + 1; > > > InvalidateRect(hwnd, NULL, TRUE); > > > break; > > > > > > case VK_ESCAPE: > > > DestroyWindow(hwnd); > > > break; > > > } > > > if (j>2) > > > {j = 0;} > > > InvalidateRect(hwnd, NULL, TRUE); > > > case WM_PAINT: > > > { > > > RECT rcClient; > > > > > > PAINTSTRUCT ps; > > > HDC hdc = BeginPaint(hwnd, &ps); > > > > > > ETC... > > > > > > Pouvez-vous m'aider > > > Merci > > >
|
|
|
Cette discussion est classé dans : case, break, wm, hwnd, keydown
Répondre à ce message
Sujets en rapport avec ce message
API Win32, problème de variable [ par bouba ]
Salut a tous, j'ai un blem de variable dans mon programme. Voici mon code source.LPSTR Path="";LRESULT CALLBACK WndProc( HWND hWnd, UINT uMsg, WPARAM
Screenmate defectueux [ par anthraxx ]
Anthrax ignisque -- Le charbon et le feu J'essaye de faire un screenmate (une petite bestiole se promenant sur les fenetres), mais n'etant pas tres ex
Question sur les WM_* [ par guitoulefoux ]
Bonjour,J'ai une petite question.J'ai un code de se type:(en super simplifié)[...]switch(mssg) { case WM_KEYDOWN: if(Param == VK_UP) { mes
CreateWindowEx [ par Galmiza ]
Salut,J'ai fait une application en plein ecran en utilisant la fonction CreateWindowEx et directX. (pour l'instant j'ai desactivé les textures)L'appui
Re : WM_KEYDOWN interception touche clavier [ par gregory6 ]
GringoBonjour, Je débute sous visual C++ et j'ai un petit problème sur les interceptions de touches au clavier. J'aimerai récupérer les touches du cla
Le jeu du serpent en C++ / niveau débutant [ par edouard57 ]
Bonjour à tous, Je débute en C ++ et opengl. Pour m'entrainer j'essaie de réaliser un petit jeu le serpent. Pour l'instant j'arrive à créer un carré d
Affichage d'un boutton en Win32 [ par Crazy_Joe ]
Bonjour à tous, Cela va peut-être vous paraître assez bénin mais je n'arrive pas à afficher un boutton tout simple dans mon application. Voici un bou
Aide sockets non bloquants [ par shadow1779 ]
il n'y a pas longtemps on m'a filé un ebook sur les sockets C avec l'API j'ai compris deux trois truc mais j'ai l'impression de caler j'aimerai qu'on
case WM_KEYDOWN marche pas quand je suis dans un contrôle. [ par paramotdam ]
Bonjour,Quand je lance mon programme et que j'appuie sur la touche Entrer, le programme va bien dans VK_RETURN et exécute "SendMessage(MaFenetre, WM_C
Timer [ par youri01 ]
salut,j'ai un ptit problème avec le timer je n'arrive pas à le faire fonctionner. dans la "WindowsProcedure" je mets :switch (message) {
Livres en rapport
|
Téléchargements
Logiciels à télécharger sur le même thème :
Comparez les prix Nouvelle version

HTC Magic
Entre 429€ et 429€
|