⚠ 이 강좌는 오토핫키 v2를 다룹니다
지금 보시는 강좌는 과거 오랜 시간동안 알려진 오토핫키(v1.1)의 차세대 버전인 오토핫키 v2를 다루고 있습니다.
만약 구버전인 '오토핫키 v1.1'의 강좌를 찾으신다면 프날 오토핫키 강좌(https://pnal.kr)를 봐주시면 되지만,
새로 오토핫키를 배우신다면 v2 버전을 배우시는 것을 강력히 추천드립니다.
37. MouseGetPos
마지막 수정일: 2023-12-22
마우스 커서 위치를 변수에 담는 방법에 대해 알아볼 것입니다.
MouseGetPos
MouseGetPos
는 현재 마우스 커서의 위치를 반환하는 함수입니다.
MouseGetPos([&OutputVarX, &OutputVarY, &OutputVarWin, &OutputVarControl, Flag])
각각의 매개변수는 아래와 같은 역할을 합니다.
- &OutputVarX: 커서 위치의 x 좌표가 담길 변수의 참조
- &OutputVarY: 커서 위치의 y 좌표가 담길 변수의 참조
- &OutputVarWin: 커서 위치의 창 ID가 담길 변수의 참조
- &OutputVarControl: 커서 위치의 컨트롤 ID가 담길 변수의 참조
- Flag: &OutputVarControl 매개변수의 동작을 설정해주는 매개변수
매개변수에 &가 붙은 이유는 인수를 '참조 형식'으로 전달해야 하기 때문인데, 현재 수준에서 이유를 설명드리기에는 복잡한 내용입니다. 그래서 여러분은 이렇게 생각하시면 됩니다.
값이 담길 변수 앞에 & 기호를 붙여 작성해준다!
따라서, var
변수에 값을 담고 싶으면, 함수에 전달할 때 &var
로 사용해주시면 됩니다.
1. &OutputVarX, &OutputVarY
현재 마우스 커서 위치(x, y)가 담길 변수를 참조 형식으로 각각 적어줍니다.
만약 posX
와 posY
변수에 각각 x, y 좌표를 담고 싶다면 &posX
, &posY
로 적어주시면 됩니다.
2. &OutputVarWin, &OutputVarControl
현재 마우스 커서가 위치한 곳의 창 ID와 컨트롤의 ClassNN이 담깁니다. ID가 무엇인지, ClassNN이 무엇인지는 추후에 강좌를 진행하면서 알려드리겠습니다.
자주 쓰이는 매개변수는 아니면서 지금 설명드리려면 GUI 프로그램의 구조를 설명드려야하므로 구체적인 설명은 넘어가겠습니다.
3. Flag
&OutputVarControl 매개변수에 적어준 변수에 어떤 값이 담길지 지정해주는 일종의 옵션입니다. 이 매개변수 역시 기초 강좌에서 언급하기엔 내용이 복잡해지므로 생략하겠습니다.
실습
보셨듯이 마우스가 위치한 곳의 여러 정보를 받아올 수 있는 유용한 함수이지만, 실습은 자주 쓰이는 '마우스 커서의 위치를 가져오는' 동작만 진행해보겠습니다. 예제를 살펴보면 그렇게 어렵지 않을 것입니다.
1. 마우스 커서의 위치를 가져와 출력하기
1 F1::
2 {
3 MouseGetPos(&posX, &posY)
4 MsgBox(posX ", " posY)
5 }
6
7 F2::
8 {
9 ExitApp
10 }
실행 후 F1을 누를 때마다 현재 마우스 좌표가 출력되는 것을 볼 수 있습니다.
참조 형식으로 적어주기 위해 값을 담을 변수에 &
기호를 적어준 부분은 생소하시겠지만,
그 이유를 파헤치기엔 우리가 배운 것이 너무 적습니다. 추후에 함수에 대해 구체적으로 배울 때 명확히 알려드리겠습니다.