トップへ戻る

Autoitプログラミング

セットアップウィザードウィンドウ

「次へ」や「戻る」ボタンで前のウィンドウ、次のウィンドウに移動できる
セットアップウィザードのようなウィンドウのサンプルです。

 

自作ツールのセットアップウィザードを作成する際に役立てていただければと思い、紹介しました。

 

ここではCall関数(パラメータを指定することができる)を使用しています。
Call関数はユーザー定義関数を呼び出す場合に使用します。

 

※ユーザー定義関数が「step1」「step2」のような名前の場合、
次のように指定できるということも覚えておきましょう。

 

$stp = 1
Call("step" & $stp, 0)

 

サンプルコード

 

#include <ButtonConstants.au3>
#include <EditConstants.au3>
#include <GUIConstantsEx.au3>
#include <StaticConstants.au3>
#include <WindowsConstants.au3>

 

Global $stp = 1

 

$Form1 = GUICreate("セットアップウィザード", 450, 221, -1, -1)
$Label1 = GUICtrlCreateLabel("", 16, 16, 400, 20)
$Edit1 = GUICtrlCreateEdit("", 40, 40, 369, 129, BitOR($ES_AUTOVSCROLL, $ES_AUTOHSCROLL, $ES_READONLY, $ES_WANTRETURN, $ES_AUTOVSCROLL, $ES_AUTOHSCROLL), 0)
GUICtrlCreateLabel("", 0, 178, 450, 1, $SS_SUNKEN)
$Radio1 = GUICtrlCreateRadio("ああああ", 120, 64, 113, 25)
$Radio2 = GUICtrlCreateRadio("いいいい", 120, 96, 113, 25)
$Radio3 = GUICtrlCreateRadio("うううう", 120, 128, 121, 25)
GUICtrlSetState($Radio1, $gui_hide)
GUICtrlSetState($Radio2, $gui_hide)
GUICtrlSetState($Radio3, $gui_hide)

 

$Button1 = GUICtrlCreateButton("< 戻る", 200, 185, 89, 25, 0)
$Button2 = GUICtrlCreateButton("次へ >", 325, 185, 89, 25, 0)
GUISetState(@SW_SHOW)

 

step1(1)
While 1
   $nMsg = GUIGetMsg()
   Switch $nMsg
      Case $GUI_EVENT_CLOSE
         Exit
      Case $Button1
         Call("step" & $stp, 0)
         $stp -= 1
         Call("step" & $stp, 1)
      Case $Button2
         If GUICtrlRead($Button2) = "終了" Then
            Exit
         EndIf

 

         Call("step" & $stp, 0)
         $stp += 1
         Call("step" & $stp, 1)

 

   EndSwitch
WEnd

 

Func step1($x)
   If $x = 1 Then
      GUICtrlSetState($Button1, $gui_disable)
      GUICtrlSetData($Label1, "Autoit セットアップウィザードの開始")
      GUICtrlSetData($Edit1, @CRLF & "これはサンプルです" & _
            @CRLF & @CRLF & "これはサンプルです")
   Else
      GUICtrlSetState($Button1, $gui_enable)
   EndIf
EndFunc   ;==>step1

 

 

Func Step2($x)
   If $x = 1 Then
      GUICtrlSetData($Label1, "よろしいですか?")
      GUICtrlSetData($Edit1, @CRLF & "これはサンプルです" & _
            @CRLF & @CRLF & "これはサンプルです" & _
            @CRLF & @CRLF & "これはサンプルです")
   EndIf
EndFunc   ;==>Step2

 

 

Func step3($x)
   If $x = 1 Then
      GUICtrlSetData($Label1, "次のどれかを選択してください")
      GUICtrlSetState($Edit1, $gui_hide)
      GUICtrlSetState($Radio1, $gui_show)
      GUICtrlSetState($Radio2, $gui_show)
      GUICtrlSetState($Radio3, $gui_show)
   Else
      GUICtrlSetState($Edit1, $gui_show)
      GUICtrlSetState($Radio1, $gui_hide)
      GUICtrlSetState($Radio2, $gui_hide)
      GUICtrlSetState($Radio3, $gui_hide)
   EndIf
EndFunc   ;==>step3

 

 

Func step4($x)
   If $x = 1 Then
      GUICtrlSetData($Button2, "終了")
      GUICtrlSetData($Label1, "サンプル")
      GUICtrlSetData($Edit1, @CRLF & "お疲れ様でした")
   Else
      GUICtrlSetData($Button2, "次へ >")
   EndIf
EndFunc   ;==>step4