2010년 10월 2일 토요일

[Autohotkey] GUI 관련

http://www.autohotkey.pe.kr/bbs/board.php?bo_table=tip&wr_id=168&page=2

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기존 이용자분들께서 좋다고 이용하라고 하시는데...
        아무리 영어설명서봐도 뭐부터 해야될지 감이 안잡혔었거든요...
        아주기본이라 상세내용은 없지만...조금은 도움이 되시길 바랍니다

댓글 없음:

댓글 쓰기