🐸

AutoHotkey v2でGuiを作る

2020/10/30に公開

AutoHotkeyのv2でGUIを作ると以下の様に書けます。
思ったよりスッキリ書けるんですね

v2の良いところとして、関数ベースに記述できる様になっていて、一般的なプログラミング言語を使ったことがある人はv1よりv2の方がしっくりくるでしょう。

特に以下の例ではthis.Guiでクラス内メンバーにアクセスできるところや、edit.OnEventの様にオブジェクトに対して関数を書けるところが良いんじゃないでしょうか。

一番嬉しいのはOnEventでイベントを関数に紐付けられるところ。
v1ではラベルに紐付けだったので、グローバル領域にラベルを定義しなければならなかったけど、v2ではクラス内関数にも紐付けられるのでグローバル領域を汚さずに定義できて良いですね。

guis := Class_Gui.New()
 
class Class_Gui
{
  Gui := ""
  
  __New()
  {
    this.Gui := Gui.New()
    this.Gui.Opt("+ToolWindow")
    this.Gui.MarginX := 0
    this.Gui.MarginY := 0
    edit := this.Gui.Add("Edit", "R1")
    
    edit.OnEvent("Change", "__OnChange")
    this.Gui.OnEvent("Close", "__OnClose")
    
    this.Gui.Show()
    
    __OnChange(Obj_CtrlObj, Obj_Info)
    {
      OutputDebug("OnChange" . "`n")
    }
    
    __OnClose(Obj_Gui)
    {
      OutputDebug("OnClose" . "`n")
    }
    
  }
  
}

Discussion