Probleme de Timer avec SetCursorPos

Maegis Messages postés 101 Date d'inscription vendredi 15 février 2002 Statut Membre Dernière intervention 6 août 2007 - 15 févr. 2004 à 03:38
PhantomPowaa Messages postés 7 Date d'inscription vendredi 27 février 2004 Statut Membre Dernière intervention 12 mars 2004 - 5 mars 2004 à 13:22
Voila je fais une appli Win32 qui necesite l'emploi d'un timer
Le probleme c'est que je ne recois jamois le message WM_TIMER ,en fait je le recois si je ne fais pas appel a la fonction SetCursorPos dont j'ai besion aussi
voici mon code

//fonction main [...]
SetTimer(hWnd,1,10,NULL);
while(GetMessage(&msg,NULL,0,0))
{
TranslateMessage(&msg);
DispatchMessage(&msg);
}
KillTimer(hWnd,1);

ShowCursor(TRUE); //on le raffiche
return msg.wParam;
}

/*---------------------------------*/
//Fonction de gestion des messages
/*---------------------------------*/
LRESULT CALLBACK WinProc(HWND hWnd,UINT uMsg,WPARAM wParam,LPARAM lParam)
{

switch(uMsg)
{

//[...] case WM_CREATE etc
//tout ca marche parfaitement

case WM_MOUSEMOVE: //gestion de la souris
GestionSouris(&c);
//Et c'est la que ca coince car dans gestionsouris je fait
//appel a SetCursorPos
//Si je ne fait plus appel a setcursor pos c'est bon ca passe
//mais ma fonction gestion souris ne fonctionne plus comme il faut
UpdateWindow(hWnd);
return 0;

case WM_TIMER:
//[...] ce que j'ai a faire return 0;
}
return DefWindowProc (hWnd,uMsg,wParam,lParam);
}

Donc le truc est tres etrange
En plus,
Si lorsque je recois le message WM_PAINT je renvoye autre chose que DefWindowProc([...]) ca me fait la meme chose, je ne recois plsu de message timer

J'ai essayé de faire appel a une fonction callback de timer mais ca me fait la meme chose
A la limite le Pb avec le PAINT je peut le regler mais avec le SetCursor je bloque HELP!!!

1 réponse

PhantomPowaa Messages postés 7 Date d'inscription vendredi 27 février 2004 Statut Membre Dernière intervention 12 mars 2004
5 mars 2004 à 13:22
euh, à ce que je sais, on doit pas mettre de valeur inférieur à 18ms env (plutot 20) pour le timer (c marqué dans le petzold).
Moi le settimer je l'aurai plutot mis dans wm_create, puis sans ça je c pas, y a une fonction dont tu te sers mal ptet, alors lit bien le msdn pour toutes tes fonctions et voila quoi
bonne chance (en Win32 on est tous passé par là ;) )
0
Rejoignez-nous