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

victorcoasne 1100 Messages postés jeudi 24 avril 2003Date d'inscription 17 octobre 2012 Dernière intervention - 11 sept. 2005 à 10:06 - Dernière réponse : victorcoasne 1100 Messages postés jeudi 24 avril 2003Date d'inscription 17 octobre 2012 Dernière intervention
- 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
racpp 1910 Messages postés vendredi 18 juin 2004Date d'inscription 14 novembre 2014 Dernière intervention - 11 sept. 2005 à 17:03
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.

Merci racpp 3

Avec quelques mots c'est encore mieux Ajouter un commentaire

Codes Sources a aidé 69 internautes ce mois-ci

Commenter la réponse de racpp
Meilleure réponse
vecchio56 6539 Messages postés lundi 16 décembre 2002Date d'inscription 22 août 2010 Dernière intervention - 11 sept. 2005 à 17:22
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);

Merci vecchio56 3

Avec quelques mots c'est encore mieux Ajouter un commentaire

Codes Sources a aidé 69 internautes ce mois-ci

Commenter la réponse de vecchio56
Meilleure réponse
BruNews 21054 Messages postés jeudi 23 janvier 2003Date d'inscription 7 novembre 2014 Dernière intervention - 11 sept. 2005 à 17:35
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++

Merci BruNews 3

Avec quelques mots c'est encore mieux Ajouter un commentaire

Codes Sources a aidé 69 internautes ce mois-ci

Commenter la réponse de BruNews
Meilleure réponse
victorcoasne 1100 Messages postés jeudi 24 avril 2003Date d'inscription 17 octobre 2012 Dernière intervention - 12 sept. 2005 à 20:41
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

Merci victorcoasne 3

Avec quelques mots c'est encore mieux Ajouter un commentaire

Codes Sources a aidé 69 internautes ce mois-ci

Commenter la réponse de victorcoasne
cs_poppyto 541 Messages postés dimanche 29 décembre 2002Date d'inscription 13 mai 2011 Dernière intervention - 11 sept. 2005 à 10:50
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
victorcoasne 1100 Messages postés jeudi 24 avril 2003Date d'inscription 17 octobre 2012 Dernière intervention - 11 sept. 2005 à 13:09
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
vecchio56 6539 Messages postés lundi 16 décembre 2002Date d'inscription 22 août 2010 Dernière intervention - 11 sept. 2005 à 16:34
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
vecchio56 6539 Messages postés lundi 16 décembre 2002Date d'inscription 22 août 2010 Dernière intervention - 11 sept. 2005 à 17:07
0
Merci
WS_POPUP et WS_CAPTION à la fois, c'est pas possible? Je crois que si
Commenter la réponse de vecchio56
racpp 1910 Messages postés vendredi 18 juin 2004Date d'inscription 14 novembre 2014 Dernière intervention - 11 sept. 2005 à 17:25
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
vecchio56 6539 Messages postés lundi 16 décembre 2002Date d'inscription 22 août 2010 Dernière intervention - 11 sept. 2005 à 17:28
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
racpp 1910 Messages postés vendredi 18 juin 2004Date d'inscription 14 novembre 2014 Dernière intervention - 11 sept. 2005 à 17:33
0
Merci
Bravo vecchio56, ta jolie solution est parfaite.
Commenter la réponse de racpp
racpp 1910 Messages postés vendredi 18 juin 2004Date d'inscription 14 novembre 2014 Dernière intervention - 11 sept. 2005 à 17:43
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
vecchio56 6539 Messages postés lundi 16 décembre 2002Date d'inscription 22 août 2010 Dernière intervention - 11 sept. 2005 à 18:25
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
victorcoasne 1100 Messages postés jeudi 24 avril 2003Date d'inscription 17 octobre 2012 Dernière intervention - 12 sept. 2005 à 20:25
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.