LIMITER LA TAILLE DU'UNE FENÊTRE (HOOK D'UNE FENÊTRE)
cs_Urgo
Messages postés780Date d'inscriptionlundi 16 décembre 2002StatutMembreDernière intervention16 avril 2009
-
19 sept. 2004 à 12:07
philippe laschweng 1
Messages postés278Date d'inscriptionjeudi 14 avril 2005StatutMembreDernière intervention13 avril 2013
-
11 févr. 2011 à 17:04
Cette discussion concerne un article du site. Pour la consulter dans son contexte d'origine, cliquez sur le lien ci-dessous.
philippe laschweng 1
Messages postés278Date d'inscriptionjeudi 14 avril 2005StatutMembreDernière intervention13 avril 20132 11 févr. 2011 à 17:04
Merci beaucoup. C'était tellement bête...
Renfield
Messages postés17287Date d'inscriptionmercredi 2 janvier 2002StatutModérateurDernière intervention27 septembre 202174 11 févr. 2011 à 11:52
Voir propriété MinimumSize de ta Form
philippe laschweng 1
Messages postés278Date d'inscriptionjeudi 14 avril 2005StatutMembreDernière intervention13 avril 20132 9 févr. 2011 à 20:46
Impeccable cette source, fonctionne très bien en VB6.
Un équivalent en .NET ??
Merci par avance
Phil
Renfield
Messages postés17287Date d'inscriptionmercredi 2 janvier 2002StatutModérateurDernière intervention27 septembre 202174 3 juil. 2010 à 17:36
ici, c'est plus du SubClassing, en effet.
CallWindowProc est utilise dans l'un ou l'autre.
abus de langage...
Philippe734
Messages postés308Date d'inscriptionlundi 16 décembre 2002StatutMembreDernière intervention15 juin 20151 3 juil. 2010 à 15:57
Juste pour savoir, est-ce du subclassing ou du hooking ? Parce que je croyais que l'api CallWindowProc était employé pour du subclassing plutot qu'en hooking.
cs_antho2005
Messages postés150Date d'inscriptionsamedi 8 avril 2006StatutMembreDernière intervention 1 mai 20123 8 août 2008 à 15:27
C'est cool, ça marche bien ...
Mais j'ai pas bien compris comment récupérer le handle de la fenêtre qui appelle la fonction subclassée ...
Ah moins que l'idéal soit de faire un GetActiveWindow ou un GetFocus ?
cs_antho2005
Messages postés150Date d'inscriptionsamedi 8 avril 2006StatutMembreDernière intervention 1 mai 20123 8 août 2008 à 12:38
WoW ! Nouveau Record (2min20) :D
Je vais regarder ça, merci ^^
Renfield
Messages postés17287Date d'inscriptionmercredi 2 janvier 2002StatutModérateurDernière intervention27 septembre 202174 8 août 2008 à 12:30
ce n'est pas une dll activeX (donc pas a ajouter aux references)
c'est une Dll d'API (voir commentaires déposés)
cs_antho2005
Messages postés150Date d'inscriptionsamedi 8 avril 2006StatutMembreDernière intervention 1 mai 20123 8 août 2008 à 12:28
Salut,
Ta source à l'air très bien, mais comment l'utilises-tu :) ?
J'arrive bien à compiler ton projet mais quand je veux ajouter la dll aux références de mon projet, il me met "Impossible d'ajouter une référence au fichier spécifié" ...
Jusque-là, j'utilisais SetWindowsHookEx de user32 avec comme ThreadID 0, et ça marchais bien pour le clavier, pour la souris (quoi que ça la unHookait quand je passais sur la barre des taches) mais je n'arrivais pas à le faire sur le déplacement/redimensionnement des fenêtres ...
J'ai donc essayé de lister les handles pour leur appliquer une fonction avec SetWindowLong mais il y avait un problème : il me fallait le nom de la variable dans CallWindowProc et je ne savais pas quel index c'était (j'avais fait un tableau).
Enfin bon, je suis pas doué, et j'arrive pas à le faire ...
Renfield
Messages postés17287Date d'inscriptionmercredi 2 janvier 2002StatutModérateurDernière intervention27 septembre 202174 7 août 2008 à 22:33
toutes les fenetres, de toutes les applications du systeme ?
cs_antho2005
Messages postés150Date d'inscriptionsamedi 8 avril 2006StatutMembreDernière intervention 1 mai 20123 7 août 2008 à 19:48
Bonjour :)
(oui, je sais, elle est pas d'hier, cette source)
J'ai un petit problème ...
ta source est super, mais je n'arrive pas à faire un hook global sur la redimension des fenêtres ...
Un peu comme ta source mais sur toutes les fenêtres ...
Saurais-tu comment faire ?
Antho2005
Renfield
Messages postés17287Date d'inscriptionmercredi 2 janvier 2002StatutModérateurDernière intervention27 septembre 202174 20 sept. 2004 à 20:04
sympa...
je m'en sers partout, en fait.... de cette Dll..... elle est perfectible, mais fonctionne pas mal.... l'interet, c'est que VB ne plante pas avec.... par rapport au subclassing "classique"
on peut toujours ne s'en servir que pour le Developpement, et rebasculer sur un version "tout integré" pour la compilation, afin de se passer de la Dll (Compilation conditionnelle , par exemple.....)
cs_DARKSIDIOUS
Messages postés15814Date d'inscriptionjeudi 8 août 2002StatutMembreDernière intervention 4 mars 2013130 20 sept. 2004 à 14:02
exact, je ne connaissait pas ce message, merci renfield !
Au passage : pas mal ta source de subclassing ;)
DarK Sidious
Renfield
Messages postés17287Date d'inscriptionmercredi 2 janvier 2002StatutModérateurDernière intervention27 septembre 202174 20 sept. 2004 à 13:14
Il existe un message bien plus adapter pour limiter la taille des fenetres....
WM_GETMINMAXINFO
ce message parviens a ta fenere, laquelle spécifie alors ses dimensions Min et Max....
Ensuite, Windows gère le tout et t'empeche de redimensionner outre ces dimensions...
bouv
Messages postés1411Date d'inscriptionmercredi 6 août 2003StatutMembreDernière intervention 3 mars 20191 20 sept. 2004 à 12:49
Merci je regarde ça
++
cs_DARKSIDIOUS
Messages postés15814Date d'inscriptionjeudi 8 août 2002StatutMembreDernière intervention 4 mars 2013130 19 sept. 2004 à 15:42
Salut bouv,
Tu peux utiliser la même méthode pour redimensionner proportionnellement ta feuille : regarde là où je modifie la taille de la feuille (au niveau du test de la taille), et mets le code qu'il te faut pour redimensionner la taille que tu le souhaite.
DarK Sidious
bouv
Messages postés1411Date d'inscriptionmercredi 6 août 2003StatutMembreDernière intervention 3 mars 20191 19 sept. 2004 à 15:26
PS : quelqu'un connait-il un moyen de redimensionner un feuille de façon proportionnelle et de façon clean.
Ex, je fais un truc du genre
Private Sub Form1_Resize()
Me.Height = Me.Width * Coef
End Sub
Le pb c'est que cette methode est pas tres propre cela rend pas bien jolie
Merci d'avance
Bonne prog
++
bouv
Messages postés1411Date d'inscriptionmercredi 6 août 2003StatutMembreDernière intervention 3 mars 20191 19 sept. 2004 à 15:24
Genial juste ce dont j'avais besoins.
J'utilisais un truc du genre
if Me.Width > 6500 then Me.Width = 6500
et c'étais un peu DEGUEULASSE !!!
Donc merci c'est impec
10/10
cs_DARKSIDIOUS
Messages postés15814Date d'inscriptionjeudi 8 août 2002StatutMembreDernière intervention 4 mars 2013130 19 sept. 2004 à 12:11
Oups, j'avais pas fait gaffe que cette source était déjà dispo avec la même méthode !
DarK Sidious
cs_Urgo
Messages postés780Date d'inscriptionlundi 16 décembre 2002StatutMembreDernière intervention16 avril 20091 19 sept. 2004 à 12:07
11 févr. 2011 à 17:04
11 févr. 2011 à 11:52
9 févr. 2011 à 20:46
Un équivalent en .NET ??
Merci par avance
Phil
3 juil. 2010 à 17:36
CallWindowProc est utilise dans l'un ou l'autre.
abus de langage...
3 juil. 2010 à 15:57
8 août 2008 à 15:27
Mais j'ai pas bien compris comment récupérer le handle de la fenêtre qui appelle la fonction subclassée ...
Ah moins que l'idéal soit de faire un GetActiveWindow ou un GetFocus ?
8 août 2008 à 12:38
Je vais regarder ça, merci ^^
8 août 2008 à 12:30
c'est une Dll d'API (voir commentaires déposés)
8 août 2008 à 12:28
Ta source à l'air très bien, mais comment l'utilises-tu :) ?
J'arrive bien à compiler ton projet mais quand je veux ajouter la dll aux références de mon projet, il me met "Impossible d'ajouter une référence au fichier spécifié" ...
Jusque-là, j'utilisais SetWindowsHookEx de user32 avec comme ThreadID 0, et ça marchais bien pour le clavier, pour la souris (quoi que ça la unHookait quand je passais sur la barre des taches) mais je n'arrivais pas à le faire sur le déplacement/redimensionnement des fenêtres ...
J'ai donc essayé de lister les handles pour leur appliquer une fonction avec SetWindowLong mais il y avait un problème : il me fallait le nom de la variable dans CallWindowProc et je ne savais pas quel index c'était (j'avais fait un tableau).
Enfin bon, je suis pas doué, et j'arrive pas à le faire ...
7 août 2008 à 22:33
Hook global => necessite une Dll
voir: http://www.cppfrance.com/codes/HOOK-DLL-HOOK-FACILE-POUR-VB6_41774.aspx
7 août 2008 à 19:48
(oui, je sais, elle est pas d'hier, cette source)
J'ai un petit problème ...
ta source est super, mais je n'arrive pas à faire un hook global sur la redimension des fenêtres ...
Un peu comme ta source mais sur toutes les fenêtres ...
Saurais-tu comment faire ?
Antho2005
20 sept. 2004 à 20:04
je m'en sers partout, en fait.... de cette Dll..... elle est perfectible, mais fonctionne pas mal.... l'interet, c'est que VB ne plante pas avec.... par rapport au subclassing "classique"
on peut toujours ne s'en servir que pour le Developpement, et rebasculer sur un version "tout integré" pour la compilation, afin de se passer de la Dll (Compilation conditionnelle , par exemple.....)
20 sept. 2004 à 14:02
Au passage : pas mal ta source de subclassing ;)
DarK Sidious
20 sept. 2004 à 13:14
WM_GETMINMAXINFO
ce message parviens a ta fenere, laquelle spécifie alors ses dimensions Min et Max....
Ensuite, Windows gère le tout et t'empeche de redimensionner outre ces dimensions...
http://www.vbfrance.com/code.aspx?ID=19625
20 sept. 2004 à 12:49
++
19 sept. 2004 à 15:42
Tu peux utiliser la même méthode pour redimensionner proportionnellement ta feuille : regarde là où je modifie la taille de la feuille (au niveau du test de la taille), et mets le code qu'il te faut pour redimensionner la taille que tu le souhaite.
DarK Sidious
19 sept. 2004 à 15:26
Ex, je fais un truc du genre
Private Sub Form1_Resize()
Me.Height = Me.Width * Coef
End Sub
Le pb c'est que cette methode est pas tres propre cela rend pas bien jolie
Merci d'avance
Bonne prog
++
19 sept. 2004 à 15:24
J'utilisais un truc du genre
if Me.Width > 6500 then Me.Width = 6500
et c'étais un peu DEGUEULASSE !!!
Donc merci c'est impec
10/10
19 sept. 2004 à 12:11
DarK Sidious
19 sept. 2004 à 12:07
http://www.vbfrance.com/code.aspx?ID=5946