Déplacer une fenêtre

Résolu
victorcoasne Messages postés 1101 Date d'inscription jeudi 24 avril 2003 Statut Membre Dernière intervention 23 juillet 2023 - 11 sept. 2005 à 10:06
victorcoasne Messages postés 1101 Date d'inscription jeudi 24 avril 2003 Statut Membre Dernière intervention 23 juillet 2023 - 12 sept. 2005 à 20:41
Bonjour,



Je voudrais déplacer une fenêtre WS_POPUP.

Je n'arrive pas à trouver le code.

Le seul que j'ai trouvé a comme inconvénient que lorsque l'on sort de
la fenêtre elle ne se déplace plus (si on la déplace trop vite elle ne
suit plus.)



Merci,



Le créateur du site http://victorlogiciels.com

14 réponses

racpp Messages postés 1909 Date d'inscription vendredi 18 juin 2004 Statut Modérateur Dernière intervention 14 novembre 2014 17
11 sept. 2005 à 17:03
Salut,

vecchio56 >> Il s'agit d'une fenêtre avec le style WS_POPUP qui
n'a pas de barre de titre donc c'est au programme de gérer son
déplacement et non Windows.



victorcoasne >> Pour empêcher le curseur de la souris de sortir
de la fenêtre pendant son déplacement tu utilises la fonction
ClipCursor() comme ceci:

case WM_LBUTTONDOWN:

RECT wndrect;

GetWindowRect(hWnd,&wndrect);

ClipCursor(&wndrect);

break;

Il faut ensuite permettre au curseur de se déplacer partout une fois le bouton gauche relaché:

case WM_LBUTTONUP:

ClipCursor(0);

break;

Voilà, normalement ça devrait résoudre ton problème.
3
vecchio56 Messages postés 6535 Date d'inscription lundi 16 décembre 2002 Statut Membre Dernière intervention 22 août 2010 14
11 sept. 2005 à 17:22
Je crois que j'ai trouvé une jolie solution pour déplacer une fenêtre sans barre de titre:
case WM_LBUTTONDOWN:
return DefWindowProc(hWnd, WM_NCLBUTTONDOWN, HTCAPTION, lParam);
3
BruNews Messages postés 21040 Date d'inscription jeudi 23 janvier 2003 Statut Modérateur Dernière intervention 21 août 2019
11 sept. 2005 à 17:35
idem si fenetre est à base de dialogbox

case WM_MOUSEMOVE:
if(wParam & MK_LBUTTON) PostMessage(hdlg, WM_NCLBUTTONDOWN, HTCAPTION, 0);
break;

ciao...
BruNews, MVP VC++
3
victorcoasne Messages postés 1101 Date d'inscription jeudi 24 avril 2003 Statut Membre Dernière intervention 23 juillet 2023 7
12 sept. 2005 à 20:41
Bonjour,



C'est nickel ce que je cherchais j'ai mis réponse accepté aux trois et
voici le code que je met moi je couple racpp avec BruNews mais je
pourrais faire racpp avec vecchio56 :



case WM_MOUSEMOVE:


if(wParam & MK_LBUTTON) PostMessage(hwnd, WM_NCLBUTTONDOWN,
HTCAPTION, 0);

break;

case WM_LBUTTONDOWN:

RECT wndrect;

GetWindowRect(hwnd,&wndrect);

ClipCursor(&wndrect);

break;

case WM_LBUTTONUP:

ClipCursor(0);

break;



Merci,



Le créateur du site http://victorlogiciels.com
3

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

Posez votre question
cs_poppyto Messages postés 540 Date d'inscription dimanche 29 décembre 2002 Statut Modérateur Dernière intervention 13 mai 2011
11 sept. 2005 à 10:50
MoveWindow ne remplit pas cette fonction ?
Au pire, SetWindowPos ?

Poppyto
http://www.poppyto.net LE site pour les bassistes
0
victorcoasne Messages postés 1101 Date d'inscription jeudi 24 avril 2003 Statut Membre Dernière intervention 23 juillet 2023 7
11 sept. 2005 à 13:09
Bonjour,



Certes mais il me faut récupérer où placer la fenêtre, en effet, l'utilisateur déplace la fenêtre avec sa souris



Merci,



Le créateur du site http://victorlogiciels.com
0
vecchio56 Messages postés 6535 Date d'inscription lundi 16 décembre 2002 Statut Membre Dernière intervention 22 août 2010 14
11 sept. 2005 à 16:34
Si c'est l'utilisateur qui le fait, ou est le problème? Windows gère ca tout seul, normalement tu n'a rien a faire
0
vecchio56 Messages postés 6535 Date d'inscription lundi 16 décembre 2002 Statut Membre Dernière intervention 22 août 2010 14
11 sept. 2005 à 17:07
WS_POPUP et WS_CAPTION à la fois, c'est pas possible? Je crois que si
0
racpp Messages postés 1909 Date d'inscription vendredi 18 juin 2004 Statut Modérateur Dernière intervention 14 novembre 2014 17
11 sept. 2005 à 17:25
Le style WS_CAPTION fait réapparaitre la bare de titre, ce n'est donc plus une fenêtre POPUP.



0
vecchio56 Messages postés 6535 Date d'inscription lundi 16 décembre 2002 Statut Membre Dernière intervention 22 août 2010 14
11 sept. 2005 à 17:28
Quand on mets une boite de dialogue en popup, ca n'enlève pas la barre de titre
Tout ce qu'on dit c'est que WS_POPUP est incompatible avec WS_CHILD, c'est tout
0
racpp Messages postés 1909 Date d'inscription vendredi 18 juin 2004 Statut Modérateur Dernière intervention 14 novembre 2014 17
11 sept. 2005 à 17:33
Bravo vecchio56, ta jolie solution est parfaite.
0
racpp Messages postés 1909 Date d'inscription vendredi 18 juin 2004 Statut Modérateur Dernière intervention 14 novembre 2014 17
11 sept. 2005 à 17:43
vecchio56 >> Le style WS_CAPTION combiné avec WS_POPUP laisse
apparaitre la barre de titre. Il suffit de tester pour s'en
convaincre.
0
vecchio56 Messages postés 6535 Date d'inscription lundi 16 décembre 2002 Statut Membre Dernière intervention 22 août 2010 14
11 sept. 2005 à 18:25
Oui je sais, c'est bien ce que je dis. Ce n'est pasce qu'une fenêtre est WS_POPUP qu'elle n'a pas de barre de titre, ca n'a rien a voir
0
victorcoasne Messages postés 1101 Date d'inscription jeudi 24 avril 2003 Statut Membre Dernière intervention 23 juillet 2023 7
12 sept. 2005 à 20:25
Bonjour,



Je cherchais en effet à ne pas avoir de barre de titre.

Je vais donc tester vos propositions.



Merci au personnes qui m'ont répondues,



Le créateur du site http://victorlogiciels.com
0
Rejoignez-nous