728x90
'나우캠퍼스X아워즈팜'유튜브의 'Win32 API 3강. 리소스 (3/4)'영상을 보고 정리한 내용입니다.
커서 리소스
- 커서 아이디의 접두사는 'IDC_'이다.
- 커서 편집기로 편집 후 저장 -> '*.cur' 확장자로 저장됨
- 운영체제에서 기본적인 커서를 많이 제공합니다.
- LoadCursor함수로 커서의 모양을 로드하며 HINSTANCE와 LPCSTR을 받는다.
- wcex.hCursor = LoadCursor(nullptr, IDC_ARROW); <-- 이런 식으로 os가 제공하는 커서를 쓰려면 hInstance는 null로, lpCursorName에는 아이디를 넣어준다. 제공하는 아이디는 MAKEINTRESOURCE 함수를 이용하여 문자열 형식으로 변환하지 않아도 된다.(다른 것은 변환해야함)
- 직접 커서를 만들기(클라이언트 영역 안에서만 적용됨)
리소스 뷰(프로젝트명.rc) -> 리소스 추가 -> Cursor 새로 만들기
ex) wcex.hCursor = LoadCursor(hInstance, MAKEINTRESOURCE(IDC_CURSOR1)); - 직접 커서를 만들 때 커서의 기능을 하게 하려면 hot spot(핫 스폿) 설정해야함.(좌표값을 설정)
- 메시지를 통한 커서 설정
프로그램의 전체 영역 안에서 커서를 바꿀 수 있다.
WM_MOUSEMOVE, WM_SETCURSOR는 마우스가 이동할 때마가 발생하는 메시지이다.
WM_SETCURSOR메시지가 발생할 때마다 커서를 셋업을 하여서 바꾸는 것이다.
SetCursor 함수로 WndProc에서 커서를 설정할 수 있다.(HCURSOR를 받음.)
ex) case WM_SETCURSOR:
hCursor = LoadCursor(hInst, MAKEINTRESOURCE(IDC_CURSOR1));
SetCursor(hCursor);
break;
혹시 제가 잘못 이해한 부분이(잘못된 정보) 있다면 알려주시면 감사하겠습니다. :)
'무작정 따라해보기(정리, 문제풀기) > Win32API' 카테고리의 다른 글
13. [WIN32 API 프로그래밍] 그래픽 관련 (0) | 2021.08.14 |
---|---|
12. WIN32 API 프로그래밍 (0) | 2021.08.13 |
10. WIN32 API 프로그래밍 (0) | 2021.08.11 |
9. WIN32 API 프로그래밍 (0) | 2021.08.11 |
8. WIN32 API 프로그래밍 (0) | 2021.08.10 |