cs_Stephane
Messages postés550Date d'inscriptionvendredi 5 janvier 2001StatutMembreDernière intervention23 septembre 2006
-
5 mai 2005 à 00:09
magrigs
Messages postés2Date d'inscriptionmercredi 27 janvier 2016StatutMembreDernière intervention30 janvier 2016
-
30 janv. 2016 à 17:06
Cette discussion concerne un article du site. Pour la consulter dans son contexte d'origine, cliquez sur le lien ci-dessous.
Renfield
Messages postés17287Date d'inscriptionmercredi 2 janvier 2002StatutModérateurDernière intervention27 septembre 202174 7 juil. 2006 à 00:28
toute la doc se trouve sur MSDN...
pour le reste, faut relever ses manches et mettre les mains dedans, les possibilités sont très très nombreuses ^^
cs_santiago69
Messages postés91Date d'inscriptionjeudi 18 novembre 2004StatutMembreDernière intervention17 décembre 2008 6 juil. 2006 à 20:21
A premiere vue, j'y comprend rien, mais ca m'a l'air excellent et en tout cas ca marche. Je suis pas assez calle pour te sortir un commenttaire comme a Jean-Marc (sur la justification de texte)... Desole
J'aimerais bien qu'on me dise un jour comment vous faites tous pour connaitre les APIs. Vous trouvez la doc ou ? Comment vous faites pour comprendre ces p....n de Declare blablabla() ?
Pour l'instant, je vais me reservir du code tel quel... un jour peut etre le voile du mystere se levera.
Note = 9
Renfield
Messages postés17287Date d'inscriptionmercredi 2 janvier 2002StatutModérateurDernière intervention27 septembre 202174 11 mai 2005 à 10:22
tu peux choper le message WM_SIZING qui va indiquer que la feuille est redimensionnée...
FeelCode
Messages postés278Date d'inscriptionvendredi 16 avril 2004StatutMembreDernière intervention27 avril 20061 10 mai 2005 à 21:40
purplespot LOL
Renfield je disait via le "<<sub classing>> " en restant dans la meme philosophie de ton code je sai pas si je me suis bien fiat comprendre la euh ?
purplespot
Messages postés60Date d'inscriptionmercredi 4 mai 2005StatutMembreDernière intervention17 avril 2006 10 mai 2005 à 18:16
Si cela bloque réellement le redimensionnement des "formes"
je vais en parler tout de suite à ma femme
...elle qui se targue toujours d'être trop grosse !!!
Renfield
Messages postés17287Date d'inscriptionmercredi 2 janvier 2002StatutModérateurDernière intervention27 septembre 202174 10 mai 2005 à 09:20
je ne vois pas là un reel bug... en haut a gauche, c'est le placement d'une feuille maximisée.
la taille reelement maximisée est ici interdite a la form.
le mieux, serait, selon moi de masquer simplement le bouton Maximize (MaxButton = False) ou jouer avec le BorderStyle...
FeelCode
Messages postés278Date d'inscriptionvendredi 16 avril 2004StatutMembreDernière intervention27 avril 20061 10 mai 2005 à 00:48
interressant et bien commenter :)
un petite truc curieux quand on clique sur le bouton euh niveau inferieur ou niveau superieur (celui aux milieux )
la forme saute du centre de l'ecrant a en haut a gauche je suppose que tu peux corriger ? bon t'est pas obliger de le faire mai c'est surtout la réponsse qui m'interesse :)
Neo.balastik
Messages postés796Date d'inscriptionjeudi 17 mai 2001StatutMembreDernière intervention 5 mai 20097 7 mai 2005 à 15:54
Merci pour ce code !
Renfield
Messages postés17287Date d'inscriptionmercredi 2 janvier 2002StatutModérateurDernière intervention27 septembre 202174 6 mai 2005 à 09:42
Merci Jack pour ces commentaires de support et d'explications... content que tu aprécie...
popur le app.logmode, j'ai recemment du étudier le systeme de log de VB, pour voir s'il était interessant a mettre en place... j'ai vu que logmode n'etait actif qu'en mode compilé.... une bonne astuce a connaitre ;-)
Pour répondre à NeoUmbrella, la plupart des evenements que tu vois dans VB sont issus de messages transmis par le système.
Click / KeyDown / MouseDown ne sont en fait que la partie emergée de l'IceBerg. De très nombreux messages existent, qui temoignent du raffraichissmeent d'une partie de la fenetre, au changement de curseur, ou au fait que Windows ferme ou manque de mémoire....
Il est possible d'intercepter ces messages pour une autre application. Win32 ayant vu la séparation des espaces mémoire, il faut ruser pour aller se greffer dans le processus cible (EBArtSoft t'expliquerait cela mieux que moi ;) ). Ce dernier a d'ailleurs mis sur le site une source qui explique ce procédé que l'on appelle cross-subclassing (sous classement inter application)...
Pour utiliser le sous classing, il faut connaitre le handle (hWnd) de la fenêtre cible. tu peux entr autre utiliser les API FindWindow (ou FindWindowEx).
L'utilisation du logiciel Spy++ peut également être d'une grande aide lors de la mise au point de softs basés sur le subclassing...
bonne continuation
cs_NeoUmbrella
Messages postés104Date d'inscriptionvendredi 5 novembre 2004StatutMembreDernière intervention11 septembre 2008 5 mai 2005 à 23:05
Salut, peut-on intercepter un autre évènement que le redimenssionement de la form comme un click sur un commandbutton et si oui peut on le récupèrer d'une autre application ? Merci
Wahou!!! exellent. J'avais completement oublié l'existence des l'API Setprop et getprop. Du coup ca m'a rappelé les Atoms et les communication DDE.
De plus ca réhausse un peu le niveau.
Ecore bravo !!!
jrbleboss
Messages postés480Date d'inscriptionjeudi 6 mai 2004StatutMembreDernière intervention 3 septembre 20071 5 mai 2005 à 18:22
Super comme d'habitude !!
cs_MasterHack
Messages postés586Date d'inscriptionjeudi 18 septembre 2003StatutMembreDernière intervention13 février 20082 5 mai 2005 à 17:50
desole,desole j'avais po vu que c seulement apres compilation que ça marche.
cs_MasterHack
Messages postés586Date d'inscriptionjeudi 18 septembre 2003StatutMembreDernière intervention13 février 20082 5 mai 2005 à 17:47
peut etre que je n'est pas compris, mais la fenetre je la resize comme je veut comme au bon vieux temps.
une petit explication stp.
cs_Jack
Messages postés14006Date d'inscriptionsamedi 29 décembre 2001StatutModérateurDernière intervention28 août 201579 5 mai 2005 à 02:57
Ah, le Renfield nouveau est arrivé !
Héhé, c'est propre, c'est net, impec ! (je suis fan)
Un beau mélange des apis SetProp et GetProp qui permettent d'associer des pseudos propriétés supplémentaires (un peu comme les Tag) mais numériques.
J'aime le détail de l'utilisation de ScaleX|Y qui prend en compte le mode d'échelle de l'utilisateur : bien pensé !
Idem pour le stockage de OldProc : exploiter les Prop jusqu'au bout, fallait y penser.
Et donc, 'App.LogMode <> 0' permet simplement de savoir si on est en mode compilé ou pas ? moi qui me compliquait la vie avec des trucs sortis de derrière les fagots ...
Et pour répondre à Stéphane, le SubClassing, c'est la méthode (un peu complexe) qui permet d'intercepter des évènements (ici, de redimensionnement) avant que l'OS ne les applique à l'objet. Si on est pas d'accord avec la valeur qui arrive (dépassement de la taille maxi souhaitée, par exemple), et bien il suffit de pas les transmettre à la forme et le tour est joué.
Le 'problème' majeur de cette technique de CallBack, c'est qu'il faut correctement gérer la réponse à l'évènement que nous donne l'OS, sinon, c'est le crash de l'éditeur VB6 (la mémoire ne peut être Read) !
Ici, pas de soucis : comme cette fonction ne fonctionne qu'en mode compilé, l'évènement 'Destroy' est sûr d'être toujours exécuté.
J'aime beaucoup Renfield, c'est simple et efficace.
C'est une autre alternative à l'utilisation de combinaisons module/classe.
Merci
cs_Stephane
Messages postés550Date d'inscriptionvendredi 5 janvier 2001StatutMembreDernière intervention23 septembre 2006 5 mai 2005 à 00:09
30 janv. 2016 à 17:06
15 févr. 2007 à 13:52
je l'ai dit :
"toute la doc se trouve sur MSDN..."
des exemples s'y trouvent également. et même si je n'avais jamais vu cette page MSDN, le message WM_GETMINMAXINFO se traite d'une façon bien précise :
on récupère la structure, on modifie les dimensions, et on réinjecte la structure...
15 févr. 2007 à 12:57
http://support.microsoft.com/default.aspx?scid=kb;en-us;Q185733
7 juil. 2006 à 00:28
pour le reste, faut relever ses manches et mettre les mains dedans, les possibilités sont très très nombreuses ^^
6 juil. 2006 à 20:21
J'aimerais bien qu'on me dise un jour comment vous faites tous pour connaitre les APIs. Vous trouvez la doc ou ? Comment vous faites pour comprendre ces p....n de Declare blablabla() ?
Pour l'instant, je vais me reservir du code tel quel... un jour peut etre le voile du mystere se levera.
Note = 9
11 mai 2005 à 10:22
10 mai 2005 à 21:40
Renfield je disait via le "<<sub classing>> " en restant dans la meme philosophie de ton code je sai pas si je me suis bien fiat comprendre la euh ?
10 mai 2005 à 18:16
je vais en parler tout de suite à ma femme
...elle qui se targue toujours d'être trop grosse !!!
10 mai 2005 à 09:20
la taille reelement maximisée est ici interdite a la form.
le mieux, serait, selon moi de masquer simplement le bouton Maximize (MaxButton = False) ou jouer avec le BorderStyle...
10 mai 2005 à 00:48
un petite truc curieux quand on clique sur le bouton euh niveau inferieur ou niveau superieur (celui aux milieux )
la forme saute du centre de l'ecrant a en haut a gauche je suppose que tu peux corriger ? bon t'est pas obliger de le faire mai c'est surtout la réponsse qui m'interesse :)
7 mai 2005 à 15:54
6 mai 2005 à 09:42
popur le app.logmode, j'ai recemment du étudier le systeme de log de VB, pour voir s'il était interessant a mettre en place... j'ai vu que logmode n'etait actif qu'en mode compilé.... une bonne astuce a connaitre ;-)
Pour répondre à NeoUmbrella, la plupart des evenements que tu vois dans VB sont issus de messages transmis par le système.
Click / KeyDown / MouseDown ne sont en fait que la partie emergée de l'IceBerg. De très nombreux messages existent, qui temoignent du raffraichissmeent d'une partie de la fenetre, au changement de curseur, ou au fait que Windows ferme ou manque de mémoire....
Il est possible d'intercepter ces messages pour une autre application. Win32 ayant vu la séparation des espaces mémoire, il faut ruser pour aller se greffer dans le processus cible (EBArtSoft t'expliquerait cela mieux que moi ;) ). Ce dernier a d'ailleurs mis sur le site une source qui explique ce procédé que l'on appelle cross-subclassing (sous classement inter application)...
http://www.vbfrance.com/code.aspx?id=19476
Pour utiliser le sous classing, il faut connaitre le handle (hWnd) de la fenêtre cible. tu peux entr autre utiliser les API FindWindow (ou FindWindowEx).
L'utilisation du logiciel Spy++ peut également être d'une grande aide lors de la mise au point de softs basés sur le subclassing...
bonne continuation
5 mai 2005 à 23:05
5 mai 2005 à 22:26
De plus ca réhausse un peu le niveau.
Ecore bravo !!!
5 mai 2005 à 18:22
5 mai 2005 à 17:50
5 mai 2005 à 17:47
une petit explication stp.
5 mai 2005 à 02:57
Héhé, c'est propre, c'est net, impec ! (je suis fan)
Un beau mélange des apis SetProp et GetProp qui permettent d'associer des pseudos propriétés supplémentaires (un peu comme les Tag) mais numériques.
J'aime le détail de l'utilisation de ScaleX|Y qui prend en compte le mode d'échelle de l'utilisateur : bien pensé !
Idem pour le stockage de OldProc : exploiter les Prop jusqu'au bout, fallait y penser.
Et donc, 'App.LogMode <> 0' permet simplement de savoir si on est en mode compilé ou pas ? moi qui me compliquait la vie avec des trucs sortis de derrière les fagots ...
Et pour répondre à Stéphane, le SubClassing, c'est la méthode (un peu complexe) qui permet d'intercepter des évènements (ici, de redimensionnement) avant que l'OS ne les applique à l'objet. Si on est pas d'accord avec la valeur qui arrive (dépassement de la taille maxi souhaitée, par exemple), et bien il suffit de pas les transmettre à la forme et le tour est joué.
Le 'problème' majeur de cette technique de CallBack, c'est qu'il faut correctement gérer la réponse à l'évènement que nous donne l'OS, sinon, c'est le crash de l'éditeur VB6 (la mémoire ne peut être Read) !
Ici, pas de soucis : comme cette fonction ne fonctionne qu'en mode compilé, l'évènement 'Destroy' est sûr d'être toujours exécuté.
J'aime beaucoup Renfield, c'est simple et efficace.
C'est une autre alternative à l'utilisation de combinaisons module/classe.
Merci
5 mai 2005 à 00:09