• 이번에는 GUI 메뉴 만드는 방법에 대하여 알아보고자 합니다.

 

  • Autoit 편집기를 실행 후 [ File ] > [ New ] 하여 빈 문서를 생성하여 저장 후 [ F1 ] 키를 누르세요.
  • 도움말이 표시되면 좌측에 [ 내용 ] 항목 탭을 선택 후 GUICreate 를 선택합니다. 그럼 우측에 세부 내용이 표시됩니다.

 

  • 우측의 스크롤을 내리다보면 Example1이 보이면 우측위의 Copy to clipboard를 클릭하여 내용을 복사하여 본문에 붙여 넣기를 진행 합니다.

#include <GUIConstantsEx.au3>

Example()

Func Example()
    ; Create a GUI with various controls.
    Local $hGUI = GUICreate("Example")
    Local $idOK = GUICtrlCreateButton("OK", 310, 370, 85, 25)

    ; Display the GUI.
    GUISetState(@SW_SHOW, $hGUI)

    ; Loop until the user exits.
    While 1
        Switch GUIGetMsg()
            Case $GUI_EVENT_CLOSE, $idOK
                ExitLoop

        EndSwitch
    WEnd

    ; Delete the previous GUI and all controls.
    GUIDelete($hGUI)
EndFunc   ;==>Example

 

  • 붙여진 편집기 내용을 [ F5 ]로 실행하여 동작을 확인 합니다.

 

 

  • GUI 상자 표시 동작에 대한 분석을 함수의 첫번째 줄 부터 진행하자면 GUICreate 안에 써있는 값은 GUI 상자의 제목을 나타납니다.

 

  • 두번째 줄은 우측 하단에 삽입 된 OK 버튼을 의미 합니다.  숫자 4개의 값은 순서대로 OK 버튼의 왼쪽 이동값, 오른쪽 이동값, 높이, 폭을 의미 합니다.

 

  • 세번째 줄은 GUI 상자가 실제로 보이도록 하는 명령어 입니다. 만약 이것을 하지 않는다면 대화상자는 사용자 눈에 안보이는 상태로만 생성 되었다가 사라지게 됩니다. 

  • 네번째 while 명령어는 눈에 보이는 상태를 유지시켜주는 명령어 입니다. 이것이 없다면 표시되자마자 사라지기 때문에 사용자 눈에 실제로 보여지는 시간이 거의 없이 종료 되게 됩니다.

 

  • 다섯번째 Switch 명령어는 GUI 상자에서 버튼을 누르는 이벤트를 받아서 처리해주는 동작 입니다. 생성한 버튼이나 기본적으로 들어가 있는 GUI 상자의 버튼의 클릭 값에 따른 동작을 추가 가능합니다.

 

 

  • Case 의 $GUI_EVENT_CLOSE는 GUI 상자우측 상단에 기본적으로 제공되고 있는 X 버튼의 동작을 의미 합니다. $idOK 버튼은 2번째 줄에 생성 한 버튼을 의미 합니다. 이 2개의 버튼을 클릭하면 Case 하단의 동작을 진행하게 됩니다. 여기서는 ExitLoop 라고 적혀있습니다. 이것은 While 밖으로 나오도록 하는 명령어 입니다. 

 

While 문 밖으로 나온 후 GUIDelete 을 진행하게 됩니다. GUIDelete는 첫번째 줄에서 생성한 GUI 상자인 $hGUI 을 최종적으로 종료해주는 동작을 진행 합니다. 안정적인 프로그램 동작을 위해서는 생성한 값을 제거해주는 것이 좋습니다.

 

 

+ Recent posts