⚠ 이 강좌는 오토핫키 v1을 다룹니다
지금 보시는 강좌는 구버전 오토핫키(v1.1)를 다루고 있습니다. 따라서 본 강좌의 내용은 현재 최신 오토핫키 버전 (v2.0)과 호환되지 않습니다. 구버전의 정보가 필요한 것이 아니라면, 가능한 한 새로운 사이트에 작성한 v2 강좌(https://ahkv2.pnal.dev)를 봐주시길 바랍니다.
GuiControl은 컨트롤을 다양하게 변형시켜주는 명령어입니다. 컨트롤의 내용을 변경하거나, 속성을 변경하는 등을 가능하게 합니다.
GuiControl
GuiControl, SubCommand, ControlID [, Value]
GuiControl의 매개변수입니다.
- SubCommand: 속성을 바꿀 경우 사용합니다. 바꿀 속성을 입력해줍니다.
- ControlID: 변형할 컨트롤의 v레이블입니다.
- Value: SubCommand 매개변수를 적어주었다면 속성값을, 적지 않았다면 컨트롤의 내용을 바꿔줍니다.
SubCommand에는 이런 것들을 적을 수 있는데요, 저희는 기초 강좌기 때문에 Disable과 Enable만을 배워보겠습니다. 나머지는 구글에 검색하시면 금방 나옵니다.
Disable과 Enable
Disable과 Enable을 사용하기 위해선, 컨트롤의 Disable 상태를 알아야합니다. 우리가 평상시에 쓰던 컨트롤은 Enable(활성) 상태이고요, 아래 사진과 같은 컨트롤을 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
버튼이라면 버튼의 이름, 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
Checkbox는 다소 독특하네요. 0과 1이 아닌 다른 값이 오면 Checkbox의 글씨가 바뀝니다.
GuiControl, 재밌지만 알아갈 여지가 많네요. 많이 써볼수록 느는 대표적인 명령어입니다. 쓰시는 컨트롤에 한번씩은 적용시켜보셨으면 좋겠습니다.
아래 링크는 GuiControl의 다른 옵션과 예제를 볼 수 있는 사이트입니다.
기초강좌인만큼 대표적으로 Disable, Enable, 값 변경 이렇게 세 가지만 배웠지만, 다른 행동이 필요하면 아래 사이트를 읽어보세요.
컨트롤을 "변형"하는 것은 모두 GuiControl입니다. 그렇게만 알고계셨다가, 추후에 필요하면 찾아보셔도 좋습니다.
< 58. 프로그래밍 문제 (13) | 59. GuiControl | 60. Gui, +/-Option >