Notice
Recent Posts
관리 메뉴

Hacking Arts

resource (icon/cursor) 본문

Programing/API Programing

resource (icon/cursor)

Rakehell 2014. 11. 4. 19:34

resource란? 전장에서 전투를 하려면 무기와 같은 자원이 있어야 한다. 무기를 리소스라 하고 지휘관을 소스코드라고 할 수 있다. 즉 리소스는 기능보다는 GUI환경에서 아이콘,커서,비트맵과 같은 그래픽 요소를 활용하는 것이다.

[그림 1] *.rc와 *.obj

리소스는 위 그림과 같이 컴파일이 되면 소스코드는 obj로 리소스는 rc 파일이 되고 최종적으로 exe파일이 된다.

비쥬얼 스튜디오 보기에 리소스 뷰를 킨뒤 resource마우스 오른쪽클릭을 하여 추가 리소스하면 된다.


[그림 2] 리소스 추가


[그림 3] 아이콘과 커서 리소스


[그림 4] 아이콘 그림 기본 그림이다.


[그림 5] 커서 그림이다 조금 수정했다.

[그림 6] 커서와 아이콘 모양이 적용된 모습]


	HWND hWnd;
	MSG Message;
	WNDCLASS WndClass;
	g_hInst = hInstance;

	WndClass.cbClsExtra = 0;
	WndClass.cbWndExtra = 0;
	WndClass.hbrBackground = (HBRUSH)GetStockObject(WHITE_BRUSH);
	WndClass.hCursor = LoadCursor(hInstance, MAKEINTRESOURCE(IDC_MYCURSOR));
	WndClass.hIcon = LoadIcon(hInstance, MAKEINTRESOURCE(IDI_MY));
	WndClass.hInstance = hInstance;
	WndClass.lpfnWndProc = (WNDPROC)WndProc;
	WndClass.lpszClassName = lpszClass;
	WndClass.lpszMenuName = NULL;
	WndClass.style = CS_HREDRAW | CS_VREDRAW;
위 코드처럼 wndclass를 hIcon과 hCursor에 hInstance 적용시키고 싶은 윈도우의 핸들값과 MAKEINTERSOURCE를 이용하여 이름을 알려준다. 이때 주의할점은 IDC_MYCURSOR나 ID_MY의 경우는 resource.h파일에 #define에 적용되어있다. 그래서 resource.h를 인클루드 해와야되고 저렇게 해주면 되게 된다.


[그림 7] resource.h 파일 내부 모습





'Programing > API Programing' 카테고리의 다른 글

타이머  (0) 2014.10.11
키보드 입력  (0) 2014.10.10
마우스 입력  (0) 2014.10.10
문자열 / 점 / 선 / 사각형 / 원 / 다각형 / 메시지 박스  (0) 2014.10.10
출력 / GDI / DC  (0) 2014.10.10