Positionnement fenetre

glipper Messages postés 246 Date d'inscription dimanche 2 juin 2002 Statut Membre Dernière intervention 11 septembre 2016 - 14 août 2004 à 12:26
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

2 réponses

ymca2003 Messages postés 2070 Date d'inscription mardi 22 avril 2003 Statut Membre Dernière intervention 3 juillet 2006 7
18 août 2004 à 21:31
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
0
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
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
0
Rejoignez-nous