DropDownList는 줄여서 DDL이라고도 합니다. 아래 사진에 보이는 컨트롤이 DDL입니다. 생년월일같은거 입력할 때 많이 보셨지요?

 


 선택지를 보여주는 DDL  

DDL은 아래와 같이 만듭니다.

Gui, Add, DropDownList, x위치 y위치 w너비 h높이, 항목1|항목2|항목3...

다른 컨트롤과 다르게 조금 눈여겨 볼 부분을 정리해보았습니다.

  • 항목이 여러개일 경우에 | 기호로 구분하여줍니다. (\키를 Shift와 함께 누르면 나옵니다.)
  • h값은 컨트롤의 높이가 아닌, 컨트롤을 눌렀을 때 나오는 항목들의 총 높이의 합입니다.
  • 그래서, h값엔 적당히 큰 수 (999등)을 넣으시면 됩니다. (알아서 크기가 조정됩니다.)
  • 항목1과 항목2 사이에 바(|)를 두 개 넣으면 항목1이 선택되어있는 상태로 표시됩니다. (항목1||항목2|항목3|항목4...)

g레이블은 컨트롤의 내용이 바뀔 때마다 서브루틴으로 이동하게 되고, v레이블은 선택한 항목의 이름이 들어갑니다.

 

간단하게 예시를 볼까요? 여러 종류의 컨트롤들을 배웠으니 이번엔 MsgBox말고 if문으로 예시를 들어보겠습니다.

Gui, Add, DropDownList, x10 y10 w130 h999 vDDL, 항목1||항목2|항목3
Gui, Add, Button, x150 y10 w70 h50 gBtn, 뭐 선택?
Gui, Show, w230 h70, 56강
return

Btn:
Gui, Submit, NoHide
if (DDL = "항목1")
    MsgBox, 항목1을 선택했습니다.
else if (DDL = "항목2")
    MsgBox, 항목2를 선택했습니다.
else if (DDL = "항목3")
    MsgBox, 항목3을 선택했습니다.
return

GuiClose:
ExitApp

56강.ahk
0.00MB

항목의 이름은 문자열이기 때문에 괄호 안에서 따옴표를 써주었습니다. 그리고 첫 줄에서 항목1과 항목2 사이에 '바'를 두 개 넣어줌으로써 항목1이 자동으로 선택되어있도록 해주었네요. h값은 적당히 큰 수인 999를 넣었습니다.

 

굳이 if문으로 나눈 이유를 찾자면 항목 이름에 따른 조사(을, 를)를 구분하기 위해서입니다.

항목1'을', 항목2'를' 처럼요.

 

이전에 배웠던 컨트롤들 또한 v레이블과 if문을 결합하여 사용할 수 있으니 참고하세요.

 


| 56. DropDownList |