[C++] La fenêtre est "attirée" par le bord de l'écran (comme WinAmp)

La fenêtre est "attirée" par le bord de l'écran (comme WinAmp) [C++] - C++ - Programmation

Marsh Posté le 30-01-2006 à 21:30:00    

Salut tout le monde,
 
J'aimerais savoir comment faire pour que les fenêtres de mon application soient "attirées" par le bord de l'écran, qu'elle se collent au bord à partir du moment où elles se trouvent à 10 pixels par exemple. Quelqu'un sait faire ça ?
 
L'exemple parfait est WinAmp. C'est exactement ces fenêtres que je souhaite faire.
 
Bien sur si quelqu'un a une adresse, ou trop mieux un morceau de code... alors là  :jap:  
 
J'espère recevoir de l'aide ;)  
 
@+ les geeks !  :hello:


Message édité par Nukjin le 31-01-2006 à 19:37:09
Reply

Marsh Posté le 30-01-2006 à 21:30:00   

Reply

Marsh Posté le 31-01-2006 à 11:59:49    

Salut,
Ca doit etre simple, genre quand l'utilisateur a fini de deplacer la fenetre, tu verifie a quelle distance du bord elle est, et si elle est pret du bord, tu la bouge programmatiquement.

Reply

Marsh Posté le 31-01-2006 à 19:32:55    

Salut,
 
Programmatiquement... ^^ C'est bô. C'est dans le dico ? ;) Non justement ca n'est pas quand il a fini de la déplacer, j'ai oublié de préciser ce point. L'utilisateur est bien en train de déplacer la fenêtre lorsque celle-ci vient d'un coup se coller contre le bord de l'écran lorsqu'elle est à, par exemple 10 ou 15 pixels du bord.
 
J'espère m'être suffisament bien exprimé. En tout cas merci de ta réponse, ca fait plaisir.
 
@+ breizhbugs.
 
Si quelqu'un a la réponse, n'hésitez pas. J'ai grand besion de savoir  :jap:  

Reply

Marsh Posté le 31-01-2006 à 20:43:47    

Nukjin a écrit :

Salut,
 
 ;) Non justement ca n'est pas quand il a fini de la déplacer, j'ai oublié de préciser ce point. L'utilisateur est bien en train de déplacer la fenêtre lorsque celle-ci vient d'un coup se coller contre le bord de l'écran lorsqu'elle est à, par exemple 10 ou 15 pixels du bord.


 
C'est la meme reponse, c'est juste l'evennement qui change: WM_SIZING au lieu de WM_SIZE

Reply

Marsh Posté le 01-02-2006 à 02:13:27    

salut breizhbugs,
 
Ah ok, j'avais mal compris excuse moi :). Je vais essayer. Ca me surprend que ce soit aussi simple, mais si c'est ca c'est cool.
 
Merci beaucoup :jap:
 
@+


Message édité par Nukjin le 01-02-2006 à 02:13:42

---------------
@+ les geeks. Longue vie aux équidés... :whistle:
Reply

Marsh Posté le 01-02-2006 à 08:14:58    

Attention quand même de ne pas boucler sur le WM_SIZE à cause de ton futur appel à SetWindowPos ou MoveWindow.

Reply

Marsh Posté le 01-02-2006 à 13:35:27    

Salut slash33,
 
Mais il y a quand meme un truc que je trouve bizarre. Bon j'ai pas encore pu tester depuis hier soir, mais la commande WM_SIZE ou WM_RESIZE... c'est pour le redimensionnement de la fenêtre, non ? Ou est-ce que ca marche aussi pour ce que je veux faire ?


---------------
@+ les geeks. Longue vie aux équidés... :whistle:
Reply

Marsh Posté le 01-02-2006 à 13:41:27    

bah alors deja c'est pas une commande, mais un message
 
ensuite pour ce genre de question y'a la MSDN
 
http://msdn.microsoft.com/library/ [...] m_size.asp
 
The WM_SIZE message is sent to a window after its size has changed.
 
j'aurais donc tendance a dire non, pas si la fenetre a été juste déplacé
 
pour ca il faut .... WM_MOVE !
 
http://msdn.microsoft.com/library/ [...] m_move.asp
 
its teh tabass0r

Reply

Marsh Posté le 01-02-2006 à 20:18:03    

Salut,
 
Heu déjà slash33 excuse moi mais j'ai vu que j'ai oublié de te remercier pour ta réponse. J'étais pressé entre midi et deux mais bon c'est pas une excuse.
 
Alors merci beaucoup pour ta réponse ;)
 
Salut chrisbk,
 

Citation :

bah alors deja c'est pas une commande, mais un message


 
Oui c'est exact erreur de ma part. Merci pour cette précision ^^. Je sous débutant en interface graphique lol. J'étais jusqu'à il y a très peu de temps programmeur en C pur uniquement...
 

Citation :

ensuite pour ce genre de question y'a la MSDN


 
Heu c'est très juste. Je n'y avais tout simplement pas pensé. C'est vrai que j'aurais du passer par là avant de poster. En meme temps, je n'aurais vraiment pas su comment formuler ma requête. Rien qu'en français j'ai déjà du mal lol. C'est pour ça que j'ai préciser dans le sujet "comme WinAmp". J'ai tellement mal formulé tout ça que sans un exemple, personne n'aurait compris de quoi je parle.
 

Citation :

The WM_SIZE message is sent to a window after its size has changed.
 
j'aurais donc tendance a dire non, pas si la fenetre a été juste déplacé
 
pour ca il faut .... WM_MOVE !


 
Et tu as en fait tout a fait raison. A première vue je dirais que c'est bien ce que je recherche. En fait curieusement je pensais que ce que je voulais faire était réaliser par une des nombreuses fonctions d'une obscure classe ésotérique ^^. Je ne pensais pas que ca pouvait être réalisé avec un simple message et aussi facilement !
 
Bon en ce qui concerne la définition de la distance par rapport au bord (genre 10 pixels) je vais me débrouiller.
 
Bah merci à toi pour ton aide, c'est toujours un plaisir. @+


---------------
@+ les geeks. Longue vie aux équidés... :whistle:
Reply

Marsh Posté le 01-02-2006 à 21:17:28    

pour la msdn, la strategie de recherche qui marche bien, c'est google
 
 
site:msdn.microsoft.fr + ta requete
 
donc si tu veux des infos sur WM_SIZE "site:msdn.microsoft.fr WM_SIZE" marche au poil

Reply

Marsh Posté le 01-02-2006 à 21:17:28   

Reply

Marsh Posté le 01-02-2006 à 21:33:08    

ah ouais dans ce cas je vais pas m'en priver ^^. Merci du tuyau !


---------------
@+ les geeks. Longue vie aux équidés... :whistle:
Reply

Marsh Posté le 01-02-2006 à 21:44:41    

Si c'est du MFC (chose que tu n'as pas précisé mais comme tu es dans la rubrique C++... :ange: ), tu disposes de méthodes spécifiques pour l'interception des  messages windows (voir la doc MFC sur le fonctionnement de la table d'interception des messages). En Win32 classique, tu traites le message dans la fonction callback de la fenêtre.
 
Avec WM_MOVE, ma remarque sur le risque de redondance tient toujours.


Message édité par slash33 le 01-02-2006 à 21:47:54
Reply

Marsh Posté le 01-02-2006 à 21:49:09    

Oui je n'ai pas précisé c'est vrai :/ Comme j'ai dit plus haut à chrisbk je débute en interface graphique, j'ai commencé hier. Mais non, je n'utilise pas MFC. J'avais pris note de ta remarque concernant les redondances.  
 
:jap:


---------------
@+ les geeks. Longue vie aux équidés... :whistle:
Reply

Marsh Posté le 02-02-2006 à 00:57:32    

Quelqu'un connais une application open-source qui pourrais m'aider ? Je suis en pleine recherche actuellement mais c'est pas évident :/


---------------
@+ les geeks. Longue vie aux équidés... :whistle:
Reply

Marsh Posté le 05-02-2006 à 20:30:10    

Nukjin a écrit :

Quelqu'un connais une application open-source qui pourrais m'aider ? Je suis en pleine recherche actuellement mais c'est pas évident :/


 
Demande sur les Newsgroups de pros : (et ça a déjà été posé x fois cette quaestion classique : google) :
 
fr.comp.os.ms-windows.programmation
comp.os.ms-windows.programmer.win32
microsoft.*
 
 
 
 

Reply

Marsh Posté le 07-02-2006 à 01:08:21    

salut,
 
Tiens, encore toi? J'ai résolu ce problème merci.


---------------
@+ les geeks. Longue vie aux équidés... :whistle:
Reply

Sujets relatifs:

Leave a Replay

Make sure you enter the(*)required information where indicate.HTML code is not allowed