Probleme fenetre

cs_flatou Messages postés 92 Date d'inscription samedi 25 octobre 2003 Statut Membre Dernière intervention 22 février 2006 - 6 mars 2004 à 17:01
ymca2003 Messages postés 2070 Date d'inscription mardi 22 avril 2003 Statut Membre Dernière intervention 3 juillet 2006 - 7 mars 2004 à 23:49
salut
j'ai ma fenetre principale de mon appli definit comme WS_POPUPWINDOW. Le prob est que la fenetre reste fixe, on ne peut pas la déplacer.
Le but principale ayant été de supprimer la barre de titre, j'ai parcouru tt les styles de fenetre et j'ai trouvé que popwindow etait pas mal.
Mais comment lui rendre sa mobilité ?
merci d'avance

6 réponses

BruNews Messages postés 21040 Date d'inscription jeudi 23 janvier 2003 Statut Modérateur Dernière intervention 21 août 2019
6 mars 2004 à 17:05
Si tu n'as plus de barre de titre, tu dois ecrire la gestion de deplacement.

ciao...
BruNews, Admin CS, MVP Visual C++
0
cs_flatou Messages postés 92 Date d'inscription samedi 25 octobre 2003 Statut Membre Dernière intervention 22 février 2006
6 mars 2004 à 17:19
et comment dois-je faire cela ?
0
BruNews Messages postés 21040 Date d'inscription jeudi 23 janvier 2003 Statut Modérateur Dernière intervention 21 août 2019
6 mars 2004 à 17:32
Gestion du WM_LBUTTONDOWN et WM_MOUSEMOVE sur element de ton chois ou toute la zone client de la fenetre.
SetWindowPos(..);
Pour deplacement propre faudra capturer souris SetCapture() et bien gerer ReleaseCapture en plusieurs endroits.

ciao...
BruNews, Admin CS, MVP Visual C++
0
cs_flatou Messages postés 92 Date d'inscription samedi 25 octobre 2003 Statut Membre Dernière intervention 22 février 2006
6 mars 2004 à 18:14
Pour WM_LBUTTONDOWN, WM_MOUSEMOVE et SetWindowPos() mais SetCapture et ReleaseCapture() je n'arrive pas a comprendre leur but et leur utilisation
Peux tu m'en dire un peu plus la dessus ?
merci encore BruNews

ps : j'ai lu MSDN a ce sujet
0

Vous n’avez pas trouvé la réponse que vous recherchez ?

Posez votre question
cs_flatou Messages postés 92 Date d'inscription samedi 25 octobre 2003 Statut Membre Dernière intervention 22 février 2006
6 mars 2004 à 23:53
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 ?
0
ymca2003 Messages postés 2070 Date d'inscription mardi 22 avril 2003 Statut Membre Dernière intervention 3 juillet 2006 7
7 mars 2004 à 23:49
en traitant WM_NCHITTEST et en renvoyant HTCAPTION tu doit pouvoir déplacer la fenêtree en cliquant n'importe où.
0
Rejoignez-nous