GuiControl은 컨트롤을 다양하게 변형시켜주는 명령어입니다. 컨트롤의 내용을 변경하거나, 속성을 변경하는 등을 가능하게 합니다.

 


 GuiControl 

GuiControl, SubCommand, ControlID [, Value]

GuiControl의 매개변수입니다.

  • SubCommand: 속성을 바꿀 경우 사용합니다. 바꿀 속성을 입력해줍니다.
  • ControlID: 변형할 컨트롤의 v레이블입니다.
  • Value: SubCommand 매개변수를 적어주었다면 속성값을, 적지 않았다면 컨트롤의 내용을 바꿔줍니다.

SubCommand에는 이런 것들을 적을 수 있는데요, 저희는 기초 강좌기 때문에 Disable과 Enable만을 배워보겠습니다. 나머지는 구글에 검색하시면 금방 나옵니다.

 


 Disable과 Enable 

Disable과 Enable을 사용하기 위해선, 컨트롤의 Disable 상태를 알아야합니다. 우리가 평상시에 쓰던 컨트롤은 Enable(활성) 상태이고요, 아래 사진과 같은 컨트롤을 Disable(비활성)상태라고 합니다.

비활성 창과 헷갈리지 않기 위해 강좌에선 Disable이라고 표시하겠습니다.

Disable 된 창은 사진과 같이 클릭할 수 없는 상태가 됩니다. Disable을 할려면 Gui생성 후, 아래처럼 써주시면 됩니다.

GuiControl, Disable, 컨트롤의 v레이블

여담이지만, 컨트롤 생성시에는 Disabled, GuiControl에는 Disable로 사용합니다.

두 개를 외우면 복잡해지니 둘 모두 Disabled로 쓰기도 합니다. 아래와 같은 형태도 허용이라는 뜻입니다.

GuiControl, Disabled, 컨트롤의 v레이블

Disable된 컨트롤을 Enable시키고 싶다면 아래처럼 써주면 되겠지요.

GuiControl, Enable, 컨트롤의 v레이블
또는
GuiControl, Enabled, 컨트롤의 v레이블

 


 내용을 바꿔주는 용도로써의 GuiControl 

사실 GuiControl은 컨트롤의 내용을 바꿔주는 용도로 사용하는 경우가 제일 많습니다. '컨트롤의 내용'은 v레이블에 담기는 값을 뜻합니다.

 

내용을 바꿔 줄 경우 SubCommand 매개변수는 비워주고, Value에 변경할 내용을 써주시면 됩니다.

GuiControl, ,컨트롤의 v레이블, 내용

 

아래처럼 작성하면 버튼을 누를 때 Edit의 내용이 바뀔 것입니다.

Gui, Add, Edit, x10 y10 w200 h20 vEdit, 나를 바꿔줘
Gui, Add, Button, x10 y40 w200 h20 gBtn, 바꾼다!
Gui, Show, w230 h70, 59강
return

Btn:
GuiControl,,Edit,바꿨다. 됐냐?
return

GuiClose:
ExitApp

59강 1.ahk
0.00MB

 

버튼이라면 버튼의 이름, DDL이라면 항목을 바꿀 수 있겠군요. ListBox같은 경우엔 항목이 추가됩니다.

 

Checkbox와 같은 경우엔 체크 유무에 따라 0과 1로 나뉘었지요? 역시 컨트롤의 내용을 0 혹은 1로 변경해주면 체크와 체크 해제를 구현할 수 있겠습니다.

Gui, Add, Checkbox, x10 y10 w200 h20 vChk, 버튼 누르면 체크됨
Gui, Add, Button, x10 y40 w200 h20 gBtn, 바꾼다!
Gui, Show, w230 h70, 59강
return

Btn:
GuiControl,,Chk,1
return

GuiClose:
ExitApp

59강 2.ahk
0.00MB

Checkbox는 다소 독특하네요. 0과 1이 아닌 다른 값이 오면 Checkbox의 글씨가 바뀝니다.

 


GuiControl, 재밌지만 알아갈 여지가 많네요. 많이 써볼수록 느는 대표적인 명령어입니다. 쓰시는 컨트롤에 한번씩은 적용시켜보셨으면 좋겠습니다.

 

아래 링크는 GuiControl의 다른 옵션과 예제를 볼 수 있는 사이트입니다.

기초강좌인만큼 대표적으로 Disable, Enable, 값 변경 이렇게 세 가지만 배웠지만, 다른 행동이 필요하면 아래 사이트를 읽어보세요.

 

컨트롤을 "변형"하는 것은 모두 GuiControl입니다. 그렇게만 알고계셨다가, 추후에 필요하면 찾아보셔도 좋습니다.

 

GuiControl - Syntax & Usage | AutoHotkey

If the target control has an associated variable, specify the variable's name as the ControlID (this method takes precedence over the ones described next). For this reason, it is usually best to assign a variable to any control that will later be accessed

www.autohotkey.com

 


| 59. GuiControl |