C++Builder Programming Forum
C++Builder  |  Delphi  |  FireMonkey  |  C/C++  |  Free Pascal  |  Firebird
볼랜드포럼 BorlandForum
 경고! 게시물 작성자의 사전 허락없는 메일주소 추출행위 절대 금지
C++빌더 포럼
Q & A
FAQ
팁&트릭
강좌/문서
자료실
컴포넌트/라이브러리
메신저 프로젝트
볼랜드포럼 홈
헤드라인 뉴스
IT 뉴스
공지사항
자유게시판
해피 브레이크
공동 프로젝트
구인/구직
회원 장터
건의사항
운영진 게시판
회원 메뉴
북마크
볼랜드포럼 광고 모집

C++빌더 Q&A
C++Builder Programming Q&A
[50718] Re:mouse_event관련
우랏차차~!! [st8123] 2399 읽음    2007-10-03 08:51
마우스 이벤트로도 그닥 상관은 없습니다.

긴긴 설명보다는 그냥 편히 소스로 보여드리는게 속편하시겠죠~?

int x_pos = parm_x*65535/GetSystemMetrics(SM_CXSCREEN);
int y_pos = parm_y*65535/GetSystemMetrics(SM_CYSCREEN);

::mouse_event(MOUSEEVENTF_MOVE | MOUSEEVENTF_ABSOLUTE, x_pos, y_pos, 0, ::GetMessageExtraInfo());

대략 이렇게 하면 마우스가 움직이는데 여기서 x, y는 전체화면의 좌표입니다.
만약 화면 해상도가 1280 * 1024라면  (1,1)은 모니터 왼쪽 꼭대기이고
만약 x가 1280이면 그만가게하고 머 이런기능도 들어가 주어야 할 것 같구요.
키보드로 제어를 하려면 일단 현재 마우스 좌표를 읽어오는 기능이 필요하겠지요.

현재좌표를 구해서

x = (현재마우스 좌표 +/- 1) *65535/GetSystemMetrics(SM_CXSCREEN);
y = (현재마우스 좌표 +/- 1) *65535/GetSystemMetrics(SM_CYSCREEN);

이런식으로 구현하면 될것 같네용~



학생 님이 쓰신 글 :
: 다이얼로그 기반에서 마우스를 키보드로 조정해서 바탕화면에서도 움직이게 할려고하는데요
: 이게 다이얼로그 기반으론 먹히지도 않고 ;;
: 그냥 싱글다큐먼트론 먹히긴하는데
: mouse_event(MOUSEEVENTF_MOVE, x * 65535 / 해상도WIDTH, y * 65535 / 해상도HEIGHT, 0, 0);
: 마우스 움직이는 이벤트에서 키보드 업키 (방향키) 누를때마다 각각 x와 y값에 무엇을 넣어야하는건가요 ?
: 전 그냥 단순하게 업키누를땐 높이에 y=0.1로 대충하면 될줄알았더니
: 다운키에 같이 반대로 x=0.1을 했더니 마우스가 왔다갔다거리면서 안되네요 ;;;
: 제가 잘못이해하고 있는건가 싶기도 하고 ,, 어떻게 써야하는건지 자세히좀 가르쳐주세요 부탁드립니다 ^^

+ -

관련 글 리스트
50702 mouse_event관련 학생 1451 2007/10/02
50718     Re:mouse_event관련 우랏차차~!! 2399 2007/10/03
Google
Copyright © 1999-2015, borlandforum.com. All right reserved.