Catcher les messages windows (du type WM_....) (OnToolTipShow) [VB6] - VB/VBA/VBS - Programmation
Marsh Posté le 18-10-2002 à 12:54:35
Marsh Posté le 18-10-2002 à 15:38:47
Marsh Posté le 18-10-2002 à 15:43:28
ReplyMarsh Posté le 18-10-2002 à 15:43:56
ReplyMarsh Posté le 18-10-2002 à 15:57:43
veux faire comme sous Delphi
Marsh Posté le 18-10-2002 à 16:09:24
ReplyMarsh Posté le 18-10-2002 à 16:15:31
pas vraiment un hook
procedure bidule(message truc); message machin;
enfin tu vois
Marsh Posté le 18-10-2002 à 16:17:08
ReplyMarsh Posté le 18-10-2002 à 16:20:00
zion a écrit a écrit : Ah ouai je vois La je sais pas |
Beh moi non + :'(
et avec API C la merde (hook) ... (je pige po C le bourdel)
tout ça pour faire l'OnShowTip de Application ds Delphi
VB sucks
Marsh Posté le 18-10-2002 à 16:57:42
Faut que tu "subclass" ta fenetre
http://www.vbaccelerator.com/
-> Articles
-> Subclassing Without The Crashes
c'est une dll (t'as les sources si tu veux intégrer ca dans ton projet) qui te permet d'attacher des messages et ca t'appelle une fonction spéciale pour les messages attachés.
tu te retrouves avec une sorte de WndProc pour tes messages attachés.
Marsh Posté le 18-10-2002 à 17:00:15
Pq faire simple quand on peu faire compliqué...
Je voudrais pas trop de trucs externe...
Mais comment vs faite pour coder sans jamais utiliser les messages ?
C naze on peu rien faire avec VB
Marsh Posté le 18-10-2002 à 17:04:56
[SDF]Poire a écrit a écrit : Pq faire simple quand on peu faire compliqué... Je voudrais pas trop de trucs externe... Mais comment vs faite pour coder sans jamais utiliser les messages ? C naze on peu rien faire avec VB |
Si je me rappelle bien il y a un autre truc beaucoup plus simple.
manque de bol, je viens de virer vb6 et je suis entrain de mettre vb.net
je vais essayer de retrouver ça dans un de mes listing
Marsh Posté le 18-10-2002 à 19:53:32
bossamiral2 a écrit a écrit : Si je me rappelle bien il y a un autre truc beaucoup plus simple. manque de bol, je viens de virer vb6 et je suis entrain de mettre vb.net je vais essayer de retrouver ça dans un de mes listing |
ça serait cool merci
Marsh Posté le 19-10-2002 à 00:39:55
Vi, c'est du subclassing, exemple :
Code :
|
Note : à lancer depuis l'executable. (pas depuis l'IDE)
Marsh Posté le 20-10-2002 à 15:54:44
KarLKoX a écrit a écrit : Vi, c'est du subclassing, exemple :
|
Merci je teste ça lundi au boulo
Marsh Posté le 20-10-2002 à 16:28:29
en fait, la dll du site que j'ai indiqué, tu peux inclure les sources dans ton projet, c assez facile.
ca fait un peu la meme chose que l'exemple de code donné, mais en mieux. (lis l'article, tu comprendras pourquoi ca peut foirer dans certains cas, et donc pourquoi faut faire comme le mec a fait)
J'ajouterai que le mec de vbaccelerator est un putain de guru en prog windows....
Marsh Posté le 21-10-2002 à 11:06:58
voilou
ds un module G :
Option Explicit |
ds ma form G :
Private Sub Form_Load() |
Lorsque une ToolTip apparait G ni le msg WM_NOTIFY ni TTN_SHOW qui est catché...
Ou est le pb ?
(ça catch bien des msg G testé...)
Mauvaise déclaration pour les messages ?
Marsh Posté le 21-10-2002 à 11:26:56
mmhh je viens de lire la MSDN et ca s'utilise pas comme ca.
Il faut que tu geres les "sous messages" de WM_NOTIFY. Lorsque tu recoies WM_NOTIFIE et que tu veux gérer les tooltips, tu as en lparam un pointeur sur une structure NMHDR qui ressemble a ca (en C) :
Code :
|
en VB (pas testé) :
Code :
|
Une fois ce pointeur récupéré, tu dois tester si le membre hwndFrom correspond bien au hwnd de ton application (me.hwnd en VB). Ensuite tu n'as plus qu'a faire un Select Case sur le membre code, code = TTN_SHOW dans ton cas.
J'ai volontairement pas donné le code mais si tu fais ca dans cet ordre, ca doit marcher, pis si tu arrives vraiement pas, je serais la
Marsh Posté le 21-10-2002 à 11:30:39
KarLKoX a écrit a écrit : mmhh je viens de lire la MSDN et ca s'utilise pas comme ca. Il faut que tu geres les "sous messages" de WM_NOTIFY. Lorsque tu recoies WM_NOTIFIE et que tu veux gérer les tooltips, tu as en lparam un pointeur sur une structure NMHDR qui ressemble a ca (en C) :
|
Je C ça
Le pb C qu'il catch même po le WM_NOTIFY
Merci de ton aide
(suis sous VB6/Win98)
Marsh Posté le 21-10-2002 à 13:50:11
Marsh Posté le 21-10-2002 à 15:23:51
Je suis au taf, ze peut pas tester pour l'instant.
Sinon, essaye de sous classer un bouton qui a un tooltip juste pour voir ce qui se passe ... (pense a passer l'hwnd du bouton dans SetWindowLong).
Marsh Posté le 22-10-2002 à 09:21:39
KarLKoX a écrit a écrit : Je suis au taf, ze peut pas tester pour l'instant. Sinon, essaye de sous classer un bouton qui a un tooltip juste pour voir ce qui se passe ... (pense a passer l'hwnd du bouton dans SetWindowLong). |
Ce qui se passe C que ça me crash le programme
Personnu a un exemple simple qui marche ?
Marsh Posté le 22-10-2002 à 10:15:12
? Peut-être http://www.experts-exchange.com/Pr [...] 19306.html
Sinon
http://www.google.fr/search?q=catc [...] l=fr&meta=
Y a MSGBLAST.VBX mais pour VB2 et 3 (donc 16 bits).
Marsh Posté le 22-10-2002 à 11:08:06
G testé avec le truc de VBaccelerator (leur exemple) et ça marche pas non +
pourtant d'aprés la doc quand un tooltip s'affiche il rise un WM_NOTIFY
Mais est-ce que G la bonne valeur pour le message ?
Marsh Posté le 22-10-2002 à 13:04:05
Ca doit être un coup de VB6 !! Heureusement que je suis resté à la version 3 16 bits .
Dans l'aide/doc VB6, ils n'en causent pas ? C'est peut-être "(des)intégré" voire natif ?
Up !
Marsh Posté le 22-10-2002 à 13:11:49
carbon_14 a écrit a écrit : Ca doit être un coup de VB6 !! Heureusement que je suis resté à la version 3 16 bits . Dans l'aide/doc VB6, ils n'en causent pas ? C'est peut-être "(des)intégré" voire natif ? Up ! |
Parler de ça ds l'aide ?
C microsoft qui a fait l'aide hein...
Marsh Posté le 22-10-2002 à 14:11:19
Marsh Posté le 22-10-2002 à 19:20:03
Windows c'est Krosoft, VB aussi. Pourquoi on pourrait pas prévoir de catcher les WM_xx depuis VB ??
Les gens qui veulent tout faire qu'avec VB, faut bien qu'ils s'en sortent.
NB : j'ai découvert les WM_xx que depuis que j'ai basculé de VB à BC ! Avant, connaissais pas. Pas pro & autodidacte => suis excusable.
Up !
Marsh Posté le 22-10-2002 à 19:32:03
Moi non + je pige po...
C super bien et super utile... (surtout ds la prog evénementielle) je pige pas comment les programmeurs peuvent se passer de ça
Avec Delphi ça m'aurait pris 10mn...
Marsh Posté le 22-10-2002 à 22:00:38
Les VBistes ne s'occupent que des objets qu'ils créent et laissent le système agir.
Je suis passé au BC car j'avais des pbs entre mes DLL et VB car j'allais à rebrousse VB pour l'affichage direct => pas tj bien.
En C, rapide aussi la gestion des WM_ (ai Delphi mais pas encore appris).
Up !!
Marsh Posté le 23-10-2002 à 13:05:05
perso j'y tiens à la gestion des objets, que ce soit des classes, forms, usercontrols, etc... Si tu laisses faire VB et que le code est plus ou moins mal torché, ça amène des surprises.
Vous me direz, programme dans un autre langage, et je répondrai que j'aimerais bien, mais au boulot, pas trop le choix. Et le pire, j'y ai pris goût
Marsh Posté le 23-10-2002 à 15:03:45
Y en a qui exècrent VB. Ca permet de faire des tas de trucs très rapidement, faut juste être soigneux au niveau des variables...
Quand on a besoin de rapidité d'éxécution : VC, BC, ou DLL pour VB.
Rapidité de design/tests (pas de compil) : VB.
Ca aide pas beaucoup tout ça à capturer les WM_xx...
Marsh Posté le 23-10-2002 à 15:05:18
drasche a écrit a écrit : perso j'y tiens à la gestion des objets, que ce soit des classes, forms, usercontrols, etc... Si tu laisses faire VB et que le code est plus ou moins mal torché, ça amène des surprises. Vous me direz, programme dans un autre langage, et je répondrai que j'aimerais bien, mais au boulot, pas trop le choix. Et le pire, j'y ai pris goût |
Idem sauf que j'y prend pas goût
Mais j'aime mieux ça que du Java
Marsh Posté le 18-10-2002 à 09:55:16
Comment intercepter les messages windows sous VB ?
Merci
Message édité par [SDF]Poire le 22-10-2002 à 14:16:14
---------------
Des bons sites pour Delphi? http://forum.hardware.fr/forum2.php3?post=16838&cat=10 -- informaticien -- http://www.z0rglub.com/phpwebgallery/ -- Delphi :love: