begin process at 2012 02 12 23:44:57
  Trouver un code source :
 
dans
 
Accueil > Forum > 

Archive C/C++

 > 

Archives

 > 

API

 > 

Problème avec WM_KEYDOWN:


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

Problème avec WM_KEYDOWN:

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

Administrateur CodeS-SourceS
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

Administrateur CodeS-SourceS
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ée 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)              { 


Nos sponsors


Sondage...

CalendriCode

Février 2012
LMMJVSD
  12345
6789101112
13141516171819
20212223242526
272829    

Consulter la suite du CalendriCode

Photothèque

 
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,296 sec (4)

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