에러는 없었지만 좌표값이 이렇게 찍혀야 하는데 

좌표가 이상하게 나와서 y축 범위가 이상하다 판단하여 코드에서 좌표값을 얻어오는곳을 확인해보니

void CMouse::WndProc(UINT iMessage, WPARAM wParam, LPARAM lParam)
{
	if (iMessage = WM_MOUSEMOVE) {
		position.x = (float)LOWORD(lParam);
		position.y = (float)LOWORD(lParam);
	}
	if (iMessage == WM_MOUSEWHEEL) {
		short temp = (short)HIWORD(wParam);
		wheelPreValue = wheelValue;
		wheelValue += (float)temp;

	}
}

y좌표가 이상하다는걸 알았습니다.

position.x = (float)LOWORD(lParam);
position.y = (float)LOWORD(lParam);

 

참조링크:http://soen.kr/lecture/win32api/lec4/lec4-2-1.htm

 

Win32 API 입문 강좌

윈도우즈와 같은 GUI운영체제에서는 키보드보다 마우스가 더 많이 사용된다. 윈도우즈의 공식 입력 장치는 키보드이지만 그래픽 툴이나 DTP, CAD 등의 복잡한 프로그램에서는 마우스가 주요 입력 장치로 사용된다. 여기서 마우스라고 함은 진짜 쥐새끼처럼 생긴 마우스는 물론이고 노트북의 터치패드, 트랙볼과 출판용 타블릿 등을 모두 포함하는 명칭이다. 키보드 입력 처리를 메시지로 하는 것과 마찬가지로 마우스 입력 처리도 메시지를 받아 처리한다. 마우스 입력에 관

soen.kr

#define LOWORD(l)           ((WORD)(((DWORD_PTR)(l)) & 0xffff))

IParam의 좌표의 위치가 잘못되었다는걸 알았습니다. 

그래서 HIWORD로 바꾸어 주었습니다.

변경전:

position.x = (float)LOWORD(lParam);
position.y = (float)LOWORD(lParam);

변경후:

position.x = (float)LOWORD(lParam);
position.y = (float)HIWORD(lParam);

+ Recent posts