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

Signaler
Messages postés
780
Date d'inscription
lundi 16 décembre 2002
Statut
Membre
Dernière intervention
16 avril 2009
-
philippe laschweng 1
Messages postés
278
Date d'inscription
jeudi 14 avril 2005
Statut
Membre
Dernière intervention
13 avril 2013
-
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
1
Merci beaucoup. C'était tellement bête...
Renfield
Messages postés
17286
Date d'inscription
mercredi 2 janvier 2002
Statut
Modérateur
Dernière intervention
23 décembre 2019
60
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
1
Impeccable cette source, fonctionne très bien en VB6.
Un équivalent en .NET ??
Merci par avance
Phil
Renfield
Messages postés
17286
Date d'inscription
mercredi 2 janvier 2002
Statut
Modérateur
Dernière intervention
23 décembre 2019
60
ici, c'est plus du SubClassing, en effet.

CallWindowProc est utilise dans l'un ou l'autre.

abus de langage...
Philippe734
Messages postés
309
Date d'inscription
lundi 16 décembre 2002
Statut
Membre
Dernière intervention
15 juin 2015
1
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
153
Date d'inscription
samedi 8 avril 2006
Statut
Membre
Dernière intervention
1 mai 2012
1
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
153
Date d'inscription
samedi 8 avril 2006
Statut
Membre
Dernière intervention
1 mai 2012
1
WoW ! Nouveau Record (2min20) :D

Je vais regarder ça, merci ^^
Renfield
Messages postés
17286
Date d'inscription
mercredi 2 janvier 2002
Statut
Modérateur
Dernière intervention
23 décembre 2019
60
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
153
Date d'inscription
samedi 8 avril 2006
Statut
Membre
Dernière intervention
1 mai 2012
1
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
17286
Date d'inscription
mercredi 2 janvier 2002
Statut
Modérateur
Dernière intervention
23 décembre 2019
60
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
153
Date d'inscription
samedi 8 avril 2006
Statut
Membre
Dernière intervention
1 mai 2012
1
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
17286
Date d'inscription
mercredi 2 janvier 2002
Statut
Modérateur
Dernière intervention
23 décembre 2019
60
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
15815
Date d'inscription
jeudi 8 août 2002
Statut
Modérateur
Dernière intervention
4 mars 2013
90
exact, je ne connaissait pas ce message, merci renfield !

Au passage : pas mal ta source de subclassing ;)

DarK Sidious
Renfield
Messages postés
17286
Date d'inscription
mercredi 2 janvier 2002
Statut
Modérateur
Dernière intervention
23 décembre 2019
60
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

Merci je regarde ça

++
cs_DARKSIDIOUS
Messages postés
15815
Date d'inscription
jeudi 8 août 2002
Statut
Modérateur
Dernière intervention
4 mars 2013
90
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

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

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
15815
Date d'inscription
jeudi 8 août 2002
Statut
Modérateur
Dernière intervention
4 mars 2013
90
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
Par la technique du subclassing ici :
http://www.vbfrance.com/code.aspx?ID=5946