Forum |  HardWare.fr | News | Articles | PC | S'identifier | S'inscrire | Shop Recherche
1504 connectés 

  FORUM HardWare.fr
  Programmation
  C++

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

 


 Mot :   Pseudo :  
 
Bas de page
Auteur Sujet :

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

n°1295160
Nukjin
Posté le 30-01-2006 à 21:30:00  profilanswer
 

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
mood
Publicité
Posté le 30-01-2006 à 21:30:00  profilanswer
 

n°1295415
breizhbugs
Posté le 31-01-2006 à 11:59:49  profilanswer
 

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.

n°1295824
Nukjin
Posté le 31-01-2006 à 19:32:55  profilanswer
 

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:  

n°1295886
breizhbugs
Posté le 31-01-2006 à 20:43:47  profilanswer
 

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

n°1296090
Nukjin
Posté le 01-02-2006 à 02:13:27  profilanswer
 

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:
n°1296101
slash33
Posté le 01-02-2006 à 08:14:58  profilanswer
 

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

n°1296329
Nukjin
Posté le 01-02-2006 à 13:35:27  profilanswer
 

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:
n°1296331
chrisbk
-
Posté le 01-02-2006 à 13:41:27  profilanswer
 

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

n°1296901
Nukjin
Posté le 01-02-2006 à 20:18:03  profilanswer
 

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:
n°1296963
chrisbk
-
Posté le 01-02-2006 à 21:17:28  profilanswer
 

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

mood
Publicité
Posté le 01-02-2006 à 21:17:28  profilanswer
 

n°1296988
Nukjin
Posté le 01-02-2006 à 21:33:08  profilanswer
 

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


---------------
@+ les geeks. Longue vie aux équidés... :whistle:
n°1297006
slash33
Posté le 01-02-2006 à 21:44:41  profilanswer
 

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
n°1297017
Nukjin
Posté le 01-02-2006 à 21:49:09  profilanswer
 

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:
n°1297116
Nukjin
Posté le 02-02-2006 à 00:57:32  profilanswer
 

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:
n°1299470
marctes
Posté le 05-02-2006 à 20:30:10  profilanswer
 

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.*
 
 
 
 

n°1300296
Nukjin
Posté le 07-02-2006 à 01:08:21  profilanswer
 

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


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

Aller à :
Ajouter une réponse
  FORUM HardWare.fr
  Programmation
  C++

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

 

Sujets relatifs
Transparence d'une fenetredelphi lancer une fenêtre dos
comment vider la fenetreRafraichissement fenetre video windows media player
[HTML] cadrage de l'image de fond d'écranhyperlien qui ferme une fenêtre en html
griser la fermeture d'une fenetre[CSS] correspondance entre taille du texte et realité sur l'ecran
[HTML] dimension de fenêtrefond d'écran (c/c++ god programming language)
Plus de sujets relatifs à : [C++] La fenêtre est "attirée" par le bord de l'écran (comme WinAmp)


Copyright © 1997-2022 Hardware.fr SARL (Signaler un contenu illicite / Données personnelles) / Groupe LDLC / Shop HFR