Déplacer une fenêtre [Résolu]

Signaler
Messages postés
1100
Date d'inscription
jeudi 24 avril 2003
Statut
Membre
Dernière intervention
17 octobre 2012
-
Messages postés
1100
Date d'inscription
jeudi 24 avril 2003
Statut
Membre
Dernière intervention
17 octobre 2012
-
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

Messages postés
1910
Date d'inscription
vendredi 18 juin 2004
Statut
Modérateur
Dernière intervention
14 novembre 2014
13
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.
Messages postés
6535
Date d'inscription
lundi 16 décembre 2002
Statut
Modérateur
Dernière intervention
22 août 2010
7
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);
Messages postés
21042
Date d'inscription
jeudi 23 janvier 2003
Statut
Modérateur
Dernière intervention
21 août 2019
27
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++
Messages postés
1100
Date d'inscription
jeudi 24 avril 2003
Statut
Membre
Dernière intervention
17 octobre 2012
6
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
Messages postés
540
Date d'inscription
dimanche 29 décembre 2002
Statut
Modérateur
Dernière intervention
13 mai 2011

MoveWindow ne remplit pas cette fonction ?
Au pire, SetWindowPos ?

Poppyto
http://www.poppyto.net LE site pour les bassistes
Messages postés
1100
Date d'inscription
jeudi 24 avril 2003
Statut
Membre
Dernière intervention
17 octobre 2012
6
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
Messages postés
6535
Date d'inscription
lundi 16 décembre 2002
Statut
Modérateur
Dernière intervention
22 août 2010
7
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
Messages postés
6535
Date d'inscription
lundi 16 décembre 2002
Statut
Modérateur
Dernière intervention
22 août 2010
7
WS_POPUP et WS_CAPTION à la fois, c'est pas possible? Je crois que si
Messages postés
1910
Date d'inscription
vendredi 18 juin 2004
Statut
Modérateur
Dernière intervention
14 novembre 2014
13
Le style WS_CAPTION fait réapparaitre la bare de titre, ce n'est donc plus une fenêtre POPUP.



Messages postés
6535
Date d'inscription
lundi 16 décembre 2002
Statut
Modérateur
Dernière intervention
22 août 2010
7
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
Messages postés
1910
Date d'inscription
vendredi 18 juin 2004
Statut
Modérateur
Dernière intervention
14 novembre 2014
13
Bravo vecchio56, ta jolie solution est parfaite.
Messages postés
1910
Date d'inscription
vendredi 18 juin 2004
Statut
Modérateur
Dernière intervention
14 novembre 2014
13
vecchio56 >> Le style WS_CAPTION combiné avec WS_POPUP laisse
apparaitre la barre de titre. Il suffit de tester pour s'en
convaincre.
Messages postés
6535
Date d'inscription
lundi 16 décembre 2002
Statut
Modérateur
Dernière intervention
22 août 2010
7
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
Messages postés
1100
Date d'inscription
jeudi 24 avril 2003
Statut
Membre
Dernière intervention
17 octobre 2012
6
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