Maegis
Messages postés101Date d'inscriptionvendredi 15 février 2002StatutMembreDernière intervention 6 août 2007
-
15 févr. 2004 à 03:38
PhantomPowaa
Messages postés7Date d'inscriptionvendredi 27 février 2004StatutMembreDernière intervention12 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!!!
PhantomPowaa
Messages postés7Date d'inscriptionvendredi 27 février 2004StatutMembreDernière intervention12 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à ;) )