Page 1 sur 1

[R] Ajouter événements à menu créé ds GUI externe

Posté : mer. 02 juin 2010 23:19
par SagePourpre
Bonjour à tous, peuple Autoit.

Je sollicite aujourd'hui la base de connaissance de la "Ruche" afin
de solutionner un petit tracas qui me perturbe depuis un bon moment
déjà. N'ayant trouvé de réponses satisfaisante, je me tourne vers vous,
dans l'espoir d'une piste prometteuse.

Voici mon soucis : Dans ce tout petit script que voilà ci-dessous, j'affiche de
façon fructueuse un nouveau menu dans ScITe intitulé : Autoit ( J'ai fais dans
l'originalité aujourd'hui ).

Son seul item dont la dénomination banale "Item 1" est bien affiché lorsque l'on
clique sur le menu.

Cependant, et c'est là tout mon désarroi, je ne parviens pas à lui assigner
un événement. J'ai suivi une piste utilisant $WM_COMMAND mais le résultat
est infructueux.

Y'aurait-il quelqu'un pour comprendre mon erreur avec l'amabilité de me partager
son opinion éclairée ?

Une piste, un indice, une réponse bien cuite ?
Je suis ouvert à tout cela...



Code : Tout sélectionner

#include <WinAPI.au3>
#include <WindowsConstants.au3>
#include <Misc.au3>
#include <GuiMenu.au3>
#include <GuiConstantsEx.au3>
Opt('GuiOnEventMode',1)
; '[CLASS:SciTEWindow]'


;GUIRegisterMsg($WM_COMMAND, "WM_COMMAND")

$hWnd = WinGetHandle('[CLASS:SciTEWindow]')
$hMain = _GUICtrlMenu_GetMenu($hWnd)

Local Enum $iditem1 = 100000
$hMenu = _GUICtrlMenu_CreateMenu()
_GUICtrlMenu_InsertMenuItem($hMenu,0,'Item 1',$iditem1)


_GUICtrlMenu_InsertMenuItem($hMain, 9, "&AutoIt", 0, $hMenu)

_GUICtrlMenu_DrawMenuBar($hWnd)

$dll = DllOpen('user32.dll')
While Not _IsPressed(23,$dll)
    Sleep(100)
WEnd

#cs
Func WM_COMMAND($hWnd, $iMsg, $iwParam, $ilParam)
    ConsoleWrite($hWnd & @CRLF)
    Switch _WinAPI_LoWord ($iwParam)
        Case $iditem1
            MsgBox(0,'','')

    EndSwitch
    Return $GUI_RUNDEFMSG
EndFunc   ;==>WM_COMMAND
#ce


DllClose($dll)
_GUICtrlMenu_RemoveMenu($hMain,9)
 

Re: [..] Ajouter événements à menu créé ds GUI externe

Posté : jeu. 03 juin 2010 00:08
par Tlem
Si c'est pour ajouter un menu à Scite, il y a plus simple. ;)
http://www.autoitscript.com/forum/index ... opic=53284

Sinon si c'est pour n'importe quelle autre application, je n'ai pas de solution toute faite, mais quelques os à ronger. ;)
- http://www.autoitscript.com/forum/index ... opic=44796
- http://www.autoitscript.com/forum/index ... opic=47066
- http://www.autoitscript.com/forum/index ... opic=56536

Bon appétit. :lol:

Re: [..] Ajouter événements à menu créé ds GUI externe

Posté : jeu. 03 juin 2010 04:07
par SagePourpre
L'objectif présent est bien d'ajouter un menu dans ScITe, cependant, afin
de rendre l'expérience intéressante et riche d'apprentissage, je me dois
d'utiliser une méthodologie dont la récursivité infaillible me servira au gré
de mes fantaisies les plus abstraites.

La première proposition semble échouer à ce constat.

J'observerai donc les autres voies possible dont vous m'avez
indiqué le chemin, même si un premier constat semble indiquer
que ma quête ne fait que débuter.

Ceci dit, il ne faut jamais se lancer à l'aventure sous le joug
de la fatigue. Je poursuivrai donc le combat dès l'aube.

Nous vaincrons !

Re: [..] Ajouter événements à menu créé ds GUI externe

Posté : dim. 06 juin 2010 23:01
par SagePourpre
J'ai finalement trouvé une solution acceptable à l'aide du dernier lien
que vous m'avez fourni.

"Easy shell hooking example" ( le dernier lien ) contient une solution acceptable utilisant
une hook de la souris afin de détecter le clic sur un élément de menu.

http://www.autoitscript.com/forum/index ... t&p=747017



Merci encore !