j'ai reussi a trouver un bout de code, le voici :
case WM_LBUTTONDOWN: { mouseX = LOWORD(lParam); mouseY = HIWORD(lParam); SetCapture(hwnd); bCapture = 1; return 0; }
case WM_LBUTTONUP: { if(GetCapture() == hwnd) { ReleaseCapture(); bCapture = 0; GetCursorPos(&pt); SetWindowPos(hwnd, 0, pt.x - mouseX, pt.y - mouseY, 0, 0, SWP_NOZORDER | SWP_NOSIZE); }
return 0; }
case WM_MOUSEMOVE: { if(bCapture) { pt.x = LOWORD(lParam); pt.y = HIWORD(lParam); ClientToScreen(hwnd, &pt); SetWindowPos(hwnd, 0, pt.x - mouseX, pt.y - mouseY, 0, 0, SWP_NOZORDER | SWP_NOSIZE); }
return 0; }
le truc c'est que lorsqu'on deplace la fenetre lentement, pas de probleme, mais si on la deplace rapidement, elle disparait et reapparait a l'endroit ou on lache le bouton de la souris. d'ou vient ce probleme ?
|