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)


