Positionnement fenetre

Messages postés
246
Date d'inscription
dimanche 2 juin 2002
Statut
Membre
Dernière intervention
11 septembre 2016
- - Dernière réponse : speedercanard
Messages postés
1
Date d'inscription
dimanche 30 mars 2003
Statut
Membre
Dernière intervention
9 octobre 2004
- 9 oct. 2004 à 22:48
Bonjour,

je cherche a faire une fenetre qui se positionne facilement sur les bords de l'ecran comme le font certains programmes tel winamp par exemple (je crois). Je veux donc que lorsqu'une fenetre se rapproche de l'un des bords, elle s'y colle directement.

J'appelle donc une fonction (créée par mes soins) lorsque windows envoie à ma fenetre le message WM_MOVE et je modifie ensuite les coordonnées de la fenetre avec SetWindowPlacement() si nécessaire.

Mais cela ne marche pas tres bien. En fait ce n'est pas assez rapide, et la fenetre "scintille" lorsqu'on la fait coulisser sur le bord de l'ecran, car windows déplace la fenetre puis moi je la remet à sa place juste apres...

Quelqu'un aurait une méthode plus simple que celle-ci ou une idée ? Une petite aide serait la bienvenue :)

++ Glipper
Afficher la suite 

2 réponses

Messages postés
2070
Date d'inscription
mardi 22 avril 2003
Statut
Membre
Dernière intervention
3 juillet 2006
8
0
Merci
peut-être en traitant le message WM_MOVING qui doit permettre de modifier la position pendant le déplacement :

The WM_MOVING message is sent to a window that the user is moving. By processing this message, an application can monitor the size and position of the drag rectangle and, if needed, change its size or position.

fwSide = wParam; // edge of window to be moved
lprc = (LPRECT) lParam; // screen coordinates of drag rectangle
Commenter la réponse de ymca2003
Messages postés
1
Date d'inscription
dimanche 30 mars 2003
Statut
Membre
Dernière intervention
9 octobre 2004
0
Merci
Au cas ou tu n'ais pas encore trouvé de solution, il y a tout ce qu'il faut sur http://www4.ncsu.edu/~jgbishop/codetips/window_placement/snap_to_edge.html
Commenter la réponse de speedercanard