WndProc()함수에 추가
LPCSTR szMsg4 = "마우스가 눌러졌습니다."; // 마우스를 눌렀을 때 출력될 문자열
LPCSTR szMsg5 = "마우스가 이동 중입니다."; // 마우스가 이동 중일 때 출력될 문자열
LPCSTR: 읽기 전용 문자열
마우스를 움질일 경우(WM_MOUSEMOVE)
case WM_MOUSEMOVE:
hdc = GetDC(hwnd); // hdc 초기화
GetClientRect(hwnd, &rect);
DrawText(hdc, szMsg5, strlen(szMsg5), &rect, DT_SINGLELINE | DT_CENTER | DT_VCENTER);
ReleaseDC(hwnd, hdc);
break;
GetDC(): DC(Device Context) 핸들을 얻음
GetClientRect(): 사각형 구조체 좌표를 구함
DrawText(): 문자열을 출력
ReleaseDC(): DC 해제
case WM_LBUTTONUP:
InvalidateRect(hwnd, NULL, TRUE);
MessageBox(hwnd, "마우스가 떼어졌습니다.", "마우스 메시지", MB_OK | MB_ICONASTERISK);
break;
InvalidateRect() 함수: 출력된 문자열을 지움, DC 핸들을 얻을 필요가 없음
windows.h 파일에 정의되어 있음
typedef struct tagPOINT{
LONG x;
LONG y;
}POINT;
한 점의 x, y좌표를 정의하는 구조체
위치를 저장하는 변수 선언
POINT MousePoint;
마우스 좌푯값 메시지를 출력
LPSTR szMsg6 = new char[10];
LPSTR: 수정 가능한 문자열MousePoint.x = LOWORD(lParam); // x 좌푯값
MousePoint.y = HIWORD(lParam); // y 좌푯값
wsprintf(szMsg6, "X:%ld, Y:%ld", MousePoint.x, MousePoint.y);
TextOut(hdc, MousePoint.x, MousePoint.y, szMsg6, strlen(szMsg6));
wsprintf() 함수: 윈도우에 문자열에 원하는 형식에 맞게 출력TextOut() 함수: 문자열을 윈도우에 출력.exe을(를) 쓰기용으로 열 수 없습니다.
위와 같은 오류는 해당 파일이 열려있는 경우 나타남
-> 종료하면 됨