Comment detecter qu'une fenetre à été reduite ?

Comment detecter qu'une fenetre à été reduite ? - VB/VBA/VBS - Programmation

Marsh Posté le 17-02-2003 à 23:37:00    

Bonjour,
 
ben voila j'essaie depuis une heure d'intercepter le code de l'event qui correspond a la reduction d'une fenetre mais malgré que j'affiche tout les message recu ( y en a une chiee ) c tres difficile de trouver le bon code, jai chercher sur google des listes de ces fameux Messages mais j'ai rien trouvé de concret...
 
connaissez vous un site ou son répertorié toutes les constantes correspondant aux evenements windows ?  
j'ai regardé dans msdn rien non plus ( enfin aps gd chose )  
 
Merci d'avance !!!


Message édité par _maximus_ le 18-02-2003 à 00:46:38

---------------
Ptit con de goret je t'emmerde ^_^
Reply

Marsh Posté le 17-02-2003 à 23:37:00   

Reply

Marsh Posté le 18-02-2003 à 01:07:52    

Je pense que tu veux parler du message WM_SIZE, non ?
 
http://msdn.microsoft.com/library/ [...] m_size.asp


---------------
each day I don't die is cheating
Reply

Marsh Posté le 18-02-2003 à 01:26:21    

gatorette a écrit :

Je pense que tu veux parler du message WM_SIZE, non ?
 
http://msdn.microsoft.com/library/ [...] m_size.asp


 
 [:mlc]  
 
arf tu me sauves !!!! Evidement j'avais pas regardé les paramettre wparam lparam ! Rah Merci bcp ...


---------------
Ptit con de goret je t'emmerde ^_^
Reply

Marsh Posté le 18-02-2003 à 01:45:30    

Prob...  
 
 
Si j'affiche la valeur de WM_SIZE il me sort k'elle est vide !  :heink:  
 
j'ai coché le composant activeX plugin  :heink:  
 
si j'ecris wm_size en minuscule il me la met en majuscule donc c kil la reconnait  :heink:  
 
Alros pq elle est vide ?  :heink:  grrr :/ comrpend pu rien :'(


---------------
Ptit con de goret je t'emmerde ^_^
Reply

Marsh Posté le 18-02-2003 à 01:55:24    

Je peux pas t'aider plus car je connais vraiment mal Visual Basic. Peut être que si tu donnais un peu plus d'explication...
 
J'ai fait un essai rapide avec VB .NET et apparemment traîter l'événement SizeChanged de ma forme principale, ça a l'air de marcher.


---------------
each day I don't die is cheating
Reply

Marsh Posté le 18-02-2003 à 02:07:06    

_Maximus_ a écrit :

Bonjour,
 
ben voila j'essaie depuis une heure d'intercepter le code de l'event qui correspond a la reduction d'une fenetre mais malgré que j'affiche tout les message recu ( y en a une chiee ) c tres difficile de trouver le bon code, jai chercher sur google des listes de ces fameux Messages mais j'ai rien trouvé de concret...
 
connaissez vous un site ou son répertorié toutes les constantes correspondant aux evenements windows ?  
j'ai regardé dans msdn rien non plus ( enfin aps gd chose )  
 
Merci d'avance !!!


 
on_resize
 
et il faut tester si windowState = vbMinimized
 
-- Edit : :heink: T'ain chuis crevé moi... J'aurai juré avoir lu que ct en VB le problème :??: Vais me coucher :D --
 
-- Re-Edit : Ha ! Si ! C'est la cat du topic :D Bon, ben alors franchement, ma solution est la plus simple... Une fenbêtre ne peux pas être redimensionnée quand elle est minimisée, donc le truc que j'ai donné que peut que fonctionner, et c'est autrement plus simple que d'épelucher les API ou autres joyeusetés... --


Message édité par MagicBuzz le 18-02-2003 à 03:44:57
Reply

Marsh Posté le 18-02-2003 à 03:18:01    

Citation :

Si j'affiche la valeur de WM_SIZE il me sort k'elle est vide !  :heink:  
 
j'ai coché le composant activeX plugin  :heink:  
 
si j'ecris wm_size en minuscule il me la met en majuscule donc c kil la reconnait  :heink:  
 
Alros pq elle est vide ?  :heink:  grrr :/ comrpend pu rien :'(


 
Ta fenêtre reçoit WM_SIZE une fois qu'elle a été minimisée.
Une fois minimisée, sa largeur et sa hauteur sont nulles ...
Intercepte plutôt SC_MINIMIZE de WM_SYSCOMMAND, qui est généré quand l'utilisateur demande à la fenêtre de se minimiser.
Elle ne l'est pas encore. C'est le bon moment pour récupérer ses dimensions.


---------------
FAQ fclc++ - FAQ C++ - C++ FAQ Lite
Reply

Marsh Posté le 18-02-2003 à 11:35:33    

HelloWorld a écrit :

Citation :

Si j'affiche la valeur de WM_SIZE il me sort k'elle est vide !  :heink:  
 
j'ai coché le composant activeX plugin  :heink:  
 
si j'ecris wm_size en minuscule il me la met en majuscule donc c kil la reconnait  :heink:  
 
Alros pq elle est vide ?  :heink:  grrr :/ comrpend pu rien :'(


 
Ta fenêtre reçoit WM_SIZE une fois qu'elle a été minimisée.
Une fois minimisée, sa largeur et sa hauteur sont nulles ...
Intercepte plutôt SC_MINIMIZE de WM_SYSCOMMAND, qui est généré quand l'utilisateur demande à la fenêtre de se minimiser.
Elle ne l'est pas encore. C'est le bon moment pour récupérer ses dimensions.


 
En fait ce que je voulais dire c'est que la constante WM_SIZE n'avait pas de valeur ! C'est ca que je comprend pas... la j'ai passer des heures a chercher c t kwa ca valeur pour enfin trouver que c t 5 :/
mais pq elle n'ont pas de valeur quand je les declare pas moi meme ?  C parfois zarb la prog sous vb...
 
ou puis je trouver la liste des VALEUR de toutes ces constante puisque mr. VB veut pas me les donner :)
 
ca me serait bien utile, et sur google a part trouver des site qui enonce juste le nom de ces constantes et a quoi elles correspondent j'en ai trouvé aucun qui dit la valeur exacte de ces constantes...  
 
merci


---------------
Ptit con de goret je t'emmerde ^_^
Reply

Marsh Posté le 18-02-2003 à 11:47:18    

ben ouais ils te causent tous C++ et la sous-cat c'est VB (je prends le topic un peu tard, la sous-cat a changé?)
 
Si on cause VB, c'est la solution de MagicBuzz qui est la bonne.
 
Tu dois avoir du code dans ta form qui ressemble à ça:
 


Private Sub Form_Resize()
  If WindowState = vbMinimized then
    ' La form a été réduite
  End If
End Sub


---------------
Whichever format the fan may want to listen is fine with us – vinyl, wax cylinders, shellac, 8-track, iPod, cloud storage, cranial implants – just as long as it’s loud and rockin' (Billy Gibbons, ZZ Top)
Reply

Marsh Posté le 18-02-2003 à 12:14:14    

drasche a écrit :

ben ouais ils te causent tous C++ et la sous-cat c'est VB (je prends le topic un peu tard, la sous-cat a changé?)
 
Si on cause VB, c'est la solution de MagicBuzz qui est la bonne.
 
Tu dois avoir du code dans ta form qui ressemble à ça:
 


Private Sub Form_Resize()
  If WindowState = vbMinimized then
    ' La form a été réduite
  End If
End Sub




 
A savoir aussi que VB conserve dans les propriétés height et width de la form sa taille avant réduction, donc elle n'est pas à 0 quand c'est réduit. (du moins, il me semble, faudrait que je re-teste pour vérifier)

Reply

Marsh Posté le 18-02-2003 à 12:14:14   

Reply

Marsh Posté le 18-02-2003 à 12:19:45    

drasche a écrit :

ben ouais ils te causent tous C++ et la sous-cat c'est VB (je prends le topic un peu tard, la sous-cat a changé?)


 
Non la sous-cat n'a pas changé, mais j'ai essayé de répondre avec mes connaissances en espérant que ça ferait avancer le schmilblick. Mais n'ayant pas de connaissances en VB, je pouvais pas faire beaucoup plus.


---------------
each day I don't die is cheating
Reply

Marsh Posté le 18-02-2003 à 12:44:26    

gatorette a écrit :


Non la sous-cat n'a pas changé, mais j'ai essayé de répondre avec mes connaissances en espérant que ça ferait avancer le schmilblick. Mais n'ayant pas de connaissances en VB, je pouvais pas faire beaucoup plus.


VB est par trop différent des autres langages/environnements de développement.  Il n'est malheureusement pas aware de l'existence de windows.h et de ses petits frères :/


---------------
Whichever format the fan may want to listen is fine with us – vinyl, wax cylinders, shellac, 8-track, iPod, cloud storage, cranial implants – just as long as it’s loud and rockin' (Billy Gibbons, ZZ Top)
Reply

Marsh Posté le 18-02-2003 à 13:07:01    

drasche a écrit :

ben ouais ils te causent tous C++ et la sous-cat c'est VB (je prends le topic un peu tard, la sous-cat a changé?)
 
Si on cause VB, c'est la solution de MagicBuzz qui est la bonne.
 
Tu dois avoir du code dans ta form qui ressemble à ça:
 


Private Sub Form_Resize()
  If WindowState = vbMinimized then
    ' La form a été réduite
  End If
End Sub



 
Ben avant de vouloir faire ca en capturant le msg de l'event j'avai fait comme ca mais pour une raison inconnue ca foirait parfois dans le cadre de mon appli aller comprendre pq :/ bref mon prob c bon je l'ai resolu, mais je v avoir besoin de detecter des events qui ne sont pas defini par defaut comme Form_resize et les constantes qui y font reference sont vide, donc ma question maintenant est comment resoudre ce prob , et / ou ou puis-je trouver une liste des valeur qu'on ces  constantes !  
 
Merci tout le monde :)
 


Message édité par _maximus_ le 18-02-2003 à 13:07:37

---------------
Ptit con de goret je t'emmerde ^_^
Reply

Marsh Posté le 18-02-2003 à 13:48:44    

Si tu parles des constantes WM_quelquechose, oublie.  Ces constantes sont définies dans le SDK Win32 mais VB n'en a nul besoin, et vbMinimized est défini dans la bibliothèque de VB.  Tu peux la retrouver dans l'object browser (appuie sur F2 pour l'obtenir).
 
En cas de doute, rajoute un Option Explicit au début de ta form, et lance toujours ton application via l'option "Start with full compile" (raccourci Ctrl-F5).  Avec ça tu sauras toujours si ton programme dispose bien de tout ce dont il a besoin au niveau déclarations variables, constantes, etc)


---------------
Whichever format the fan may want to listen is fine with us – vinyl, wax cylinders, shellac, 8-track, iPod, cloud storage, cranial implants – just as long as it’s loud and rockin' (Billy Gibbons, ZZ Top)
Reply

Marsh Posté le 18-02-2003 à 14:04:47    

drasche a écrit :

Si tu parles des constantes WM_quelquechose, oublie.  Ces constantes sont définies dans le SDK Win32 mais VB n'en a nul besoin, et vbMinimized est défini dans la bibliothèque de VB.  Tu peux la retrouver dans l'object browser (appuie sur F2 pour l'obtenir).
 
En cas de doute, rajoute un Option Explicit au début de ta form, et lance toujours ton application via l'option "Start with full compile" (raccourci Ctrl-F5).  Avec ça tu sauras toujours si ton programme dispose bien de tout ce dont il a besoin au niveau déclarations variables, constantes, etc)


 
Ok tkx , mais comment je fais pour voir uniquement les constantes qui corresponde aux messages envoyé au prog?


---------------
Ptit con de goret je t'emmerde ^_^
Reply

Marsh Posté le 18-02-2003 à 14:12:37    

_Maximus_ a écrit :


 
Ok tkx , mais comment je fais pour voir uniquement les constantes qui corresponde aux messages envoyé au prog?


Tu ne peux pas.  Dans la mesure ou la fonction Form_Resize ne donne pas de paramètre, tu dois tester par toi même les propriétés de ta form et implémenter ce qu'il faut pour savoir ce qui a changé par rapport au précédent appel [:spamafote]
 
Quant aux constantes, elles sont toujours toutes là.  Tu pourrais n'en afficher qu'une partie via l'identifiant de l'énumérateur auquel appartient vbMinimized mais WindowsState est déclaré Integer.  Tu peux rechercher vbMinimized dans l'object browser pour retrouver son énumérateur.


---------------
Whichever format the fan may want to listen is fine with us – vinyl, wax cylinders, shellac, 8-track, iPod, cloud storage, cranial implants – just as long as it’s loud and rockin' (Billy Gibbons, ZZ Top)
Reply

Sujets relatifs:

Leave a Replay

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