Code: Select all
#Requires Autohotkey v2.0
#SingleInstance force
item := ["aaa","bbb","ccc"] ; Menu items
myGui := Gui()
myGui.OnEvent("Escape", GuiEscape)
myGui.OnEvent("Close", GuiEscape)
myGui.SetFont("s12")
ogcListViewLV := myGui.Add("ListView", "vLV r12 w250 -Hdr", ["11","22222222222"])
ogcListViewLV.OnEvent("Itemfocus", FocusFile)
ogcButtonOK := myGui.Add("Button", "xm ym Hidden default", "OK")
ogcButtonOK.OnEvent("Click", ButtonOK) ; For pressing Enter
For each, row in item
ogcListViewLV.Add("",A_index, row) ; Add Menu item to ListView
myGui.Title := "Menu (F3 = show again)"
showGui() ; Display the ListView
return
!F3::showGui() ; Alt + F3 = display ListView
showGui()
{
myGui.Title := "Menu (F3 = show again)"
myGui.Show()
return
}
FocusFile(GuiCtrlObj, ROW)
{
If GetKeyState("LButton") || GetKeyState("RButton") = true
{
myGui.Hide()
callone(item[ROW])
return
}
}
ButtonOK(*) ; User pressed ENTER
{
fc := myGui.FocusedCtrl.Name ; Get the focused Control Name
if (fc = "LV") { ; Focused Control is the ListView
myGui.Hide()
callone(item[ROW := ogcListViewLV.GetNext(0,"Focused")]) ; Focused row
}
return
}
GuiEscape(*)
{
myGui.Hide()
return
}
callone(gwitem)
{
MsgBox(gwitem,"")
}