Gui는 어렵다?

처음에 영어 설명서보고 Gui하라면 뭐부터 봐야할지 막막하시죠...?

생각보다 쉽습니다.



근데 Gui가 뭘까요? 죄다 영어라... 뭔내용인지 보기 힘드시죠..?
간단히 말하면 그냥 새로운 윈도우창을 말합니다.

그럼 윈도우창을 사용하려면, 윈도우창에 대한 내용을 만들어야 합니다.

그럼 1단계로 윈도우창부터 만들어 보겠습니다.





1단계. 윈도우창 만들기
-------------------------------------
Gui,Show,x100 y100 w200 h200,창만들기
;; x,y는 윈도우창이 생길곳의 좌측상단의 좌표를 말하고
;; w,h는 넓이와 높이를 말합니다.
;; 창만들기라는 타이틀을 가진 창을 생성합니다.
return
;; return은 윈도우창을 만든내용까지만 실행하고 프로그램을 대기상태로 돌린다는 것을 의미합니다.
;; return이 함수에서 쓰인다면 그 의미가 다르지만, 여기선 생략하겠습니다.
-------------------------------------

실행해보셨나요?
윈도우창이 생겼죠?
근데 아무내용이 없습니다.
당현히 저희가 아무것도 안넣었기 때문입니다.
그리고 한가지 문제점 발생되었습니다.
윈도우창 X버튼눌러도 아래쪽에 H아이콘이 남아있을테니깐요.
이건 직접 트레이아이콘쪽에서 우클릭후 종료해주세요.




2. 윈도우창에 닫기버튼 활성화 시키기
-------------------------------------
Gui,Show,x100 y100 w200 h200,창만들기
return

GuiClose:
;;;; Gui창의 Close버튼을 눌렀을때 GuiClose: 아래 내용들을 실행한다는 것을 의미합니다.
exitapp
;;;;프로그램을 종료할다는 것을 의미합니다.
-------------------------------------
어떤가요? 이제 꺼지시죠?




3. 기본적인 기능들 사용해보기
-------------------------------------
Gui,Add,Text,x10 y10,텍스트                                           ;;;;텍스트라고 써지는 Text를 넣습니다.
Gui,Add,Edit,x10 y40 vEdit창반환값,에디트                       ;;;;에디트이라고 써진 Edit창을 넣습니다.
Gui,Add,Button,x10 y70 gButton클릭,버튼                   ;;;;버튼이라고 써진 버튼을 넣습니다.
Gui,Add,CheckBox,x10 y100 gCheckBox클릭 vCheckBox반환값,체크박스          ;;;;;;;;;;;;체크박스라고 써진 체크박스를 넣습니다.
Gui,Show,x100 y100 w300 h300,실행중인 타이틀명           ;;;;;;;;;창을 띄우는데 창의 타이틀이 실행중인 타이틀명 입니다.
return

;;;;여기까지 보면 vEdit창반환값 gButton클릭 gCheckBox클릭 이라고 세개가 있습니다.
;;;;우선 Gui에서 추가되는 대부분의 기능들이 g라벨과 v라벨을 갖습니다.
;;;;g라벨이라하면, 그 추가된 기능부분을 클릭하면, 실행되는 것을 말하고.
;;;;v라벨이라면, 추가된 기능부분이 포함한 정보를 저장할 변수를 말합니다.

Button클릭:    ;;;;gButton클릭 을 지정했으므로 이부분도 반드시 존재하여야합니다.
Gui,Submit,Nohide   
;;;그냥 영어를 해석하시면 편합니다. Gui를 제출한다. 안숨기고.
;;;말그대로 현재 윈도우창의 기능들이 지닌 정보를 지정해둔 v라벨의 변수들에게 제출한다는 이야기 입니다.
msgbox 버튼클릭됨`nEdit창 내용 : %Edit창반환값%
;;; 이제 변수들에 정보가 저장되었으므로 msgbox르 정보를 볼수있겠죠?
return

CheckBox클릭:
Gui,Submit,Nohide
msgbox CheckBox반환값 : %CheckBox반환값%
;;; 체크박스는 반환값으로 0 또는 1을 받습니다.
;;; 0은 체크안되것 1은 체크된것입니다.
return

GuiClose:
exitapp
-------------------------------------



4. Gui창 두개이상 활용하기
-------------------------------------
;;; 간단합니다. 앞에 1: 2:만 써주시면 됩니다.
;;; 우선 기본적으로 1:, 2: 같은것을 안써주면 기본(default)으로 지정되어있는 윈도우창에 기능들이 추가됩니다.
;;; Gui,1:Default가 현재 생략되어있다는 얘기입니다.
;;; 그러므로 Gui,Add,Text,,내용 으로 맨윗줄에쓰면 항상 1번창에 기능들이 추가된것입니다.
;;; Default라는 것으로 현재 관리할 창을 지정할수 있습니다.

Gui,1:Add,Text,x10 y10,1번창
Gui,1:Add,Edit,x10 y40 vEdit1번창창반환값,에디트창1
Gui,1:Add,button,x10 y70 g1번창버튼클릭,버튼1
Gui,2:Add,Text,x10 y10,2번창
Gui,2:Add,Edit,x10 y40 vEdit2번창창반환값,에디트창2
Gui,2:Add,button,x10 y70 g2번창버튼클릭,버튼2
Gui,1:Show,,테스트
return

1번창버튼클릭:
Gui,1:default
;;;; 버튼을 클릭한순간 1번창을 기본으로 지정합니다.
Gui,1:Submit,Nohide
;;;; 버튼을 클릭한순간 1번창의 v라벨의 변수에 정보를 저장합니다.
msgbox 에디트창1 : %Edit1번창창반환값%
Gui,1:hide
;;;; 1번창을 숨깁니다.
Gui,2:Show
;;;; 2번창을 보여줍니다.
return

2번창버튼클릭:
;;;반대이므로 생략합니다.
Gui,2:default
Gui,2:Submit,Nohide
msgbox 에디트창2 : %Edit2번창창반환값%
Gui,2:hide
Gui,1:Show
return

Guiclose:
exitapp
-------------------------------------
생각보다 두개의 창을 관리 하기 쉽죠?




5단계. 창내용 수정하기
GuiControl을 사용하셔야 합니다.
-------------------------------------
Gui,1:Add,Text,x10 y10 w150 v1번창내용,1번창
;;;;1번창의 Text부분을 수정을 위해 v라벨을 주었고, 넓이를 150으로 넓혔습니다.
Gui,1:Add,Edit,x10 y40 vEdit1번창창반환값,에디트창1
Gui,1:Add,button,x10 y70 g1번창버튼클릭,버튼1
Gui,2:Add,Text,x10 y10,2번창
Gui,2:Add,Edit,x10 y40 vEdit2번창창반환값,에디트창2
Gui,2:Add,button,x10 y70 g2번창버튼클릭,버튼2
Gui,1:Show,,테스트
return

1번창버튼클릭:
Gui,1:default
Gui,1:Submit,Nohide
msgbox 에디트창1 : %Edit1번창창반환값%
Gui,1:hide
Gui,2:Show
Gui,2:Default
;;2번창을 Show로 띄웠더라도 수정을 위해선 default로 기본창으로 지정해야합니다.
GuiControl,,Edit2번창창반환값,초기값
;; GuiControl,,edit1,초기값 이렇게 쓰셔도 됩니다.
;; 2번창에서 첫번째(edit1)이란 의미입니다.
;; 편하게 하려면, 그냥 v라벨 쓰는게 편합니다.
return

2번창버튼클릭:
Gui,2:default
Gui,2:Submit,Nohide
msgbox 에디트창2 : %Edit2번창창반환값%
Gui,2:hide
Gui,1:Show
Gui,1:default
GuiControl,text,1번창내용,1번창 첫줄 초기화
;;마찬가지로 1번창을 기본으로 하기 위해 default하였습니다.
;;특이사항으론 text는 v라벨만 주면 수정이 안됩니다. 반드시 앞에 text라고 넣어주어야만 됩니다.
return

GuiClose:
;;; 창이 두개인데 종료버튼이 두개죠..?
;;; 그럼 종료버튼마다 서로다른 기능이 오게할수 있습니다.
msgbox 1번창에서는 종료가 안되게 했습니다.
return

2GuiClose:
;;; 2번창은 2GuiClose라고 사용하시면됩니다.
;;; 현재 스크립트 상으로 2번창에만 exitapp를 넣어서 2번창에서만 종료가됩니다.
msgbox 2번창에서 종료합니다.
exitapp
-------------------------------------








***** 이 외에도 다른 기능들이 많이 있습니다.
-------------------------------------
Text, Edit, UpDown, Picture
Button, Checkbox, Radio
DropDownList, ComboBox
ListBox, ListView, TreeView
Hotkey, DateTime, MonthCal
Slider, Progress
GroupBox, Tab, StatusBar, Internet Explorer Control
-------------------------------------
모두 Add를 통해서 하나씩 해보시면 각각의 특성을 조금씩 아실수 있을것입니다.









P.S ) 옛날에 처음 Gui익힐때가 생각나네요... AHK기존 이용자분들께서 좋다고 이용하라고 하시는데...
        아무리 영어설명서봐도 뭐부터 해야될지 감이 안잡혔었거든요...
        아주기본이라 상세내용은 없지만...조금은 도움이 되시길 바랍니다.

 

'Study > AutoHotKey' 카테고리의 다른 글

한영 전환키 check  (0) 2011.10.18
Script> 좌표/색 도우미  (2) 2011.10.17
AHK 자주사용하는 명령어  (0) 2011.10.17
내장변수  (0) 2011.10.10
키보드 스캔코드  (0) 2011.10.10
정규 표현식 설명(예제포함)  (0) 2011.10.09
정규 표현식  (0) 2011.10.09
핑테스트 하는것  (0) 2011.10.09
시계  (0) 2011.10.09
AutoHotKey  (0) 2011.10.09