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

Messages postés
1100
Date d'inscription
jeudi 24 avril 2003
Statut
Membre
Dernière intervention
17 octobre 2012
- - Dernière réponse : victorcoasne
Messages postés
1100
Date d'inscription
jeudi 24 avril 2003
Statut
Membre
Dernière intervention
17 octobre 2012
- 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
Afficher la suite 

Votre réponse

14 réponses

Meilleure réponse
Messages postés
1910
Date d'inscription
vendredi 18 juin 2004
Statut
Modérateur
Dernière intervention
14 novembre 2014
7
3
Merci
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.

Dire « Merci » 3

Quelques mots de remerciements seront grandement appréciés. Ajouter un commentaire

Codes Sources 140 internautes nous ont dit merci ce mois-ci

Commenter la réponse de racpp
Messages postés
6539
Date d'inscription
lundi 16 décembre 2002
Statut
Modérateur
Dernière intervention
22 août 2010
16
3
Merci
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);

Dire « Merci » 3

Quelques mots de remerciements seront grandement appréciés. Ajouter un commentaire

Codes Sources 140 internautes nous ont dit merci ce mois-ci

Commenter la réponse de vecchio56
Messages postés
21054
Date d'inscription
jeudi 23 janvier 2003
Statut
Modérateur
Dernière intervention
7 novembre 2014
41
3
Merci
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++

Dire « Merci » 3

Quelques mots de remerciements seront grandement appréciés. Ajouter un commentaire

Codes Sources 140 internautes nous ont dit merci ce mois-ci

Commenter la réponse de BruNews
Messages postés
1100
Date d'inscription
jeudi 24 avril 2003
Statut
Membre
Dernière intervention
17 octobre 2012
3
3
Merci
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

Dire « Merci » 3

Quelques mots de remerciements seront grandement appréciés. Ajouter un commentaire

Codes Sources 140 internautes nous ont dit merci ce mois-ci

Commenter la réponse de victorcoasne
Messages postés
541
Date d'inscription
dimanche 29 décembre 2002
Statut
Modérateur
Dernière intervention
13 mai 2011
0
Merci
MoveWindow ne remplit pas cette fonction ?
Au pire, SetWindowPos ?

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



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

Vous n'êtes pas encore membre ?

inscrivez-vous, c'est gratuit et ça prend moins d'une minute !

Les membres obtiennent plus de réponses que les utilisateurs anonymes.

Le fait d'être membre vous permet d'avoir un suivi détaillé de vos demandes et codes sources.

Le fait d'être membre vous permet d'avoir des options supplémentaires.