01 윈도우(Window)

Estimated reading: 1 minute 73 views

이 문서에서는 AutoHotkey의 윈도우 생성 및 제어에 대해 학습합니다. 다양한 수준의 예제를 통해 윈도우 생성, 크기 및 위치 조절, 버튼 제거, 투명도 제어, 애니메이션과 같은 고급 기능을 다룹니다.

  • 초급: 기본 윈도우 생성, 크기 설정, 제목 추가 등 윈도우의 기본 기능을 학습합니다.
  • 중급: 최소화/최대화 버튼 추가 및 제거, 투명도 제어, 아이콘 및 툴윈도우 스타일을 학습합니다.
  • 고급: 닫기 버튼 비활성화, 윈도우 위치 조정, 타이머, 이벤트 활용으로 동적 인터페이스를 제작합니다.

1. 초급 (기본 사용법)

목표: 기본적인 윈도우 생성 및 크기, 위치 조정 방법을 학습합니다.

기본 윈도우 생성

윈도우를 생성하고 크기를 지정합니다.

MyGui := Gui()
MyGui.Show(w300 h150)

설명

  • MyGui := Gui(): 새로운 GUI 윈도우를 생성합니다.
  • Show(“w300 h150”): 너비 300px, 높이 150px로 윈도우를 표시합니다.

윈도우에 캡션(제목) 추가

윈도우에 제목을 추가합니다.

MyGui := Gui(, 윈도우 제목)
MyGui.Show(w300 h150)

설명

  • MyGui := Gui(“”, “윈도우 제목”): “윈도우 제목”이라는 제목을 추가한 GUI를 생성합니다.

최소 크기, 최대 크기 설정

윈도우의 최소 크기와 최대 크기를 설정합니다.

MyGui := Gui(+MinSize300x150 +MaxSize500x400, 윈도우 제목)
MyGui.Show(w300 h150)

설명

  • +MinSize300x150: 최소 크기를 너비 300px, 높이 150px로 설정합니다.
  • +MaxSize500x400: 최대 크기를 너비 500px, 높이 400px로 설정합니다.

2. 중급 (윈도우 스타일 설정)

목표: 윈도우의 스타일을 변경하고, 최소화/최대화 버튼을 추가하거나 제거합니다.

최대화 버튼 활성화

기본적으로 비활성화된 최대화 버튼을 활성화합니다.

MyGui := Gui(+MaximizeBox, 윈도우 제목)
MyGui.Show(w300 h150)

설명

  • +MaximizeBox: 최대화 버튼을 활성화합니다.

최소화, 최대화 버튼 제거

최소화 버튼과 최대화 버튼을 모두 제거합니다.

MyGui := Gui(-MinimizeBox, 윈도우 제목)
MyGui.Show(w300 h150)

설명

  • -MinimizeBox: 최소화 버튼을 제거합니다. (최대화 버튼도 자동으로 제거됩니다.)

최소화, 최대화, 닫기 버튼 모두 제거

윈도우의 제목줄 전체를 제거하여 최소화, 최대화, 닫기 버튼을 모두 제거합니다.

MyGui := Gui(-Caption, 윈도우 제목)
MyGui.Show(w300 h150)

설명

  • -Caption: 제목줄 전체를 제거합니다.

투명한 윈도우 생성

투명한 윈도우를 생성합니다.

MyGui := Gui(+E0x20, 투명 윈도우)
MyGui.Show(w300 h150)

설명

  • +E0x20: 윈도우의 배경을 투명하게 만듭니다.

아이콘, 최소화, 최대화 버튼 삭제

아이콘, 최소화, 최대화 버튼을 모두 삭제합니다.

MyGui := Gui(+ToolWindow, 윈도우 제목)
MyGui.Show(w300 h150)

설명

  • +ToolWindow: 도구 스타일의 윈도우를 생성하여 최소화, 최대화 버튼과 아이콘을 제거합니다.

3. 고급 (윈도우 제어 및 이벤트 추가)

목표: 윈도우의 위치를 제어하고, 닫기 버튼을 비활성화하며, 타이머 및 이벤트 핸들러를 추가합니다.

닫기 버튼 비활성화

윈도우의 닫기 버튼을 비활성화합니다.

MyGui := Gui(+DisableClose, 닫기 버튼 비활성화)
MyGui.Show(w300 h150)

설명

  • +DisableClose: 닫기 버튼을 비활성화합니다.

윈도우 위치 설정

윈도우의 화면 좌표를 설정합니다.

MyGui := Gui()
MyGui.Show(x100 y200 w300 h150)

설명

  • x100, y200: 화면 좌표 (100, 200)에 윈도우의 좌상단을 위치시킵니다.

윈도우 투명도 설정

윈도우의 투명도(Opacity) 를 설정합니다.

MyGui := Gui()
MyGui.Show(w300 h150)
MyGui.Opt(+AlwaysOnTop)
MyGui.Opt(Transparent50)

설명

  • MyGui.Opt(“Transparent50”): 윈도우의 투명도를 50%로 설정합니다.
  • +AlwaysOnTop: 항상 위에 떠 있도록 설정합니다.

타이머로 윈도우 위치 변경

타이머를 통해 윈도우의 위치를 지속적으로 변경합니다.

MyGui := Gui()
MyGui.Show(w300 h150)
SetTimer, MoveWindow, 100

MoveWindow() {
    static x := 0
    x += 5
    If (x > 800)
        x := 0
    MyGui.Move(x, 200)
}

설명

  • SetTimer: 100ms마다 MoveWindow 함수를 실행합니다.
  • MyGui.Move(x, 200): X좌표를 5씩 증가시키며 화면을 가로로 움직입니다.

윈도우의 투명도 조절 슬라이더

슬라이더를 사용하여 윈도우의 투명도를 조절합니다.

MyGui := Gui()
MyGui.Add(Slider, vOpacity Range0-255 w200, 128)
MyGui.Add(Button, gChangeOpacity, 적용)
MyGui.Show(w300 h150)

ChangeOpacity() {
    Gui, Submit, NoHide
    WinSet, Transparent, %Opacity%, A
}

설명

  • Slider: 0~255 범위의 슬라이더를 추가합니다.
  • WinSet, Transparent, %Opacity%, A: 현재 창의 투명도를 슬라이더 값으로 변경합니다.

향후 추가예정

  • 이벤트 핸들링 심화: 버튼 클릭, 키보드 입력에 따른 동적 인터페이스 제작.
  • GUI 애니메이션 효과 추가: 타이머와 윈도우 이동을 결합하여 자연스러운 애니메이션 구현.
  • 사용자 입력 기반의 동적 윈도우 생성: 사용자 입력에 따라 동적으로 새 창을 생성하는 기능.
Subscribe
Notify of
guest
0 댓글
Inline Feedbacks
View all comments