LIMITER LA TAILLE DU'UNE FENÊTRE (HOOK D'UNE FENÊTRE)

cs_Urgo Messages postés 780 Date d'inscription lundi 16 décembre 2002 Statut Membre Dernière intervention 16 avril 2009 - 19 sept. 2004 à 12:07
philippe laschweng 1 Messages postés 278 Date d'inscription jeudi 14 avril 2005 Statut Membre Dernière intervention 13 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.

https://codes-sources.commentcamarche.net/source/26265-limiter-la-taille-du-une-fenetre-hook-d-une-fenetre

philippe laschweng 1 Messages postés 278 Date d'inscription jeudi 14 avril 2005 Statut Membre Dernière intervention 13 avril 2013 2
11 févr. 2011 à 17:04
Merci beaucoup. C'était tellement bête...
Renfield Messages postés 17287 Date d'inscription mercredi 2 janvier 2002 Statut Modérateur Dernière intervention 27 septembre 2021 74
11 févr. 2011 à 11:52
Voir propriété MinimumSize de ta Form
philippe laschweng 1 Messages postés 278 Date d'inscription jeudi 14 avril 2005 Statut Membre Dernière intervention 13 avril 2013 2
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és 17287 Date d'inscription mercredi 2 janvier 2002 Statut Modérateur Dernière intervention 27 septembre 2021 74
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és 308 Date d'inscription lundi 16 décembre 2002 Statut Membre Dernière intervention 15 juin 2015 1
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és 150 Date d'inscription samedi 8 avril 2006 Statut Membre Dernière intervention 1 mai 2012 3
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és 150 Date d'inscription samedi 8 avril 2006 Statut Membre Dernière intervention 1 mai 2012 3
8 août 2008 à 12:38
WoW ! Nouveau Record (2min20) :D

Je vais regarder ça, merci ^^
Renfield Messages postés 17287 Date d'inscription mercredi 2 janvier 2002 Statut Modérateur Dernière intervention 27 septembre 2021 74
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és 150 Date d'inscription samedi 8 avril 2006 Statut Membre Dernière intervention 1 mai 2012 3
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és 17287 Date d'inscription mercredi 2 janvier 2002 Statut Modérateur Dernière intervention 27 septembre 2021 74
7 août 2008 à 22:33
toutes les fenetres, de toutes les applications du systeme ?

Hook global => necessite une Dll

voir: http://www.cppfrance.com/codes/HOOK-DLL-HOOK-FACILE-POUR-VB6_41774.aspx
cs_antho2005 Messages postés 150 Date d'inscription samedi 8 avril 2006 Statut Membre Dernière intervention 1 mai 2012 3
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és 17287 Date d'inscription mercredi 2 janvier 2002 Statut Modérateur Dernière intervention 27 septembre 2021 74
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és 15814 Date d'inscription jeudi 8 août 2002 Statut Membre Dernière intervention 4 mars 2013 130
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és 17287 Date d'inscription mercredi 2 janvier 2002 Statut Modérateur Dernière intervention 27 septembre 2021 74
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...

http://www.vbfrance.com/code.aspx?ID=19625
bouv Messages postés 1411 Date d'inscription mercredi 6 août 2003 Statut Membre Dernière intervention 3 mars 2019 1
20 sept. 2004 à 12:49
Merci je regarde ça

++
cs_DARKSIDIOUS Messages postés 15814 Date d'inscription jeudi 8 août 2002 Statut Membre Dernière intervention 4 mars 2013 130
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és 1411 Date d'inscription mercredi 6 août 2003 Statut Membre Dernière intervention 3 mars 2019 1
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és 1411 Date d'inscription mercredi 6 août 2003 Statut Membre Dernière intervention 3 mars 2019 1
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és 15814 Date d'inscription jeudi 8 août 2002 Statut Membre Dernière intervention 4 mars 2013 130
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és 780 Date d'inscription lundi 16 décembre 2002 Statut Membre Dernière intervention 16 avril 2009 1
19 sept. 2004 à 12:07
Par la technique du subclassing ici :
http://www.vbfrance.com/code.aspx?ID=5946
Rejoignez-nous