SetCursor

¿øÇü

HCURSOR SetCursor(HCURSOR hCursor);

MFC ¿øÇü

ÇØ´çÇÏ´Â ÇÔ¼ö ¾øÀ½

Àμö

¢ºhCursor : º¯°æÇÏ°íÀÚ ÇÏ´Â Ä¿¼­ÀÇ ÇÚµéÀÌ¸ç º¸Åë LoadCursor³ª LoadImage·Î Àоî¿Â Ä¿¼­ ¸®¼Ò½ºÀÇ ÇÚµéÀÌ´Ù. ¶Ç´Â CreateCursor ÇÔ¼ö·Î Á÷Á¢ Ä¿¼­¸¦ ¸¸µé¾î »ç¿ëÇÒ ¼öµµ ÀÖ´Ù. ÀÌ Àμö°¡ NULLÀ̸é Ä¿¼­¸¦ È­¸é¿¡¼­ Á¦°ÅÇÑ´Ù.

¸®ÅÏ

ÀÌÀü¿¡ ¼³Á¤µÇ¾î ÀÖ´ø Ä¿¼­ÀÇ ÇÚµéÀ» ¸®ÅÏÇϸç ÀÌ ÇÚµéÀº Ä¿¼­¸¦ ¿ø·¡ »óÅ·ΠµÇµ¹¸± ¶§ »ç¿ëµÈ´Ù. ¸¸¾à ÀÌÀü¿¡ Ä¿¼­°¡ ¼³Á¤µÇ¾î ÀÖÁö ¾Ê¾Ò´Ù¸é NULLÀÌ ¸®ÅϵȴÙ.

¼³¸í

¸¶¿ì½ºÀÇ ÇöÀç À§Ä¡¸¦ ¾Ë·ÁÁÖ´Â Ä¿¼­¸¦ hCursor·Î º¯°æÇ쵂 ¸¸¾à ÀÌ¹Ì hCursor°¡ ¼³Á¤µÇ¾î ÀÖ´Ù¸é ¾Æ¹« Àϵµ ÇÏÁö ¾Ê´Â´Ù. Áï, °°Àº Ä¿¼­¸¦ µÎ¹ø ¼³Á¤ÇÒ ¶§´Â ºÒÇÊ¿äÇÑ Ä¿¼­ º¯°æÀ» ÇÏÁö ¾Ê´Â´Ù. ¿©·¯¹úÀÇ Ä¿¼­¸¦ ÁغñÇØ µÎ°í ÇöÀç »óÅ¿¡ µû¶ó ´Ù¸¥ ¸ð¾çÀÇ Ä¿¼­¸¦ »ç¿ëÇÏ°íÀÚ ÇÒ °æ¿ì ÀÌ ÇÔ¼ö·Î Ä¿¼­¸¦ º¯°æÇÏ¸é µÈ´Ù.

¿¹Á¦ 1

´ÙÀ½ ¿¹Á¦´Â 3ÃÊ°£ÀÇ ±ä ÀÛ¾÷À» Çϱâ Àü¿¡ Ä¿¼­¸¦ ¸ð·¡½Ã°è·Î º¯°æÇÏ°í ÀÛ¾÷ÀÌ ³¡³ª¸é ´Ù½Ã ¿ø·¡ÀÇ Ä¿¼­·Î º¹±¸½ÃŲ´Ù.

LRESULT CALLBACK WndProc(HWND hWnd,UINT iMessage,WPARAM wParam,LPARAM lParam)
{
	HDC hdc;
	PAINTSTRUCT ps;
	char Mes[]="¸¶¿ì½º ¿ÞÂÊ ¹öÆ°À» ´©¸£½Ê½Ã¿À";
	HCURSOR hOld;

	switch(iMessage) {
	case WM_LBUTTONDOWN:
		hOld=SetCursor(LoadCursor(NULL,IDC_WAIT));
		Sleep(3000);
		SetCursor(hOld);
		return 0;
	case WM_PAINT:
		hdc=BeginPaint(hWnd, &ps);
		TextOut(hdc,10,10,Mes,lstrlen(Mes));
		EndPaint(hWnd, &ps);
		return 0;
	case WM_DESTROY:
		PostQuitMessage(0);
		return 0;
	}
	return(DefWindowProc(hWnd,iMessage,wParam,lParam));
}

¿ÞÂÊ ¹öÆ°À» ´­·¶À» ¶§ 3ÃÊ°£ÀÇ ÀÛ¾÷À» Çϴµ¥ ÀÛ¾÷¿¡ µé¾î°¡±â Àü¿¡ SetCursor ÇÔ¼ö·Î Ä¿¼­¸¦ IDC_WAIT·Î º¯°æÇØ ÁÖ¾ú´Ù. ¸®¼Ò½º¿¡ Á¤ÀǵǾî ÀÖ´Â Ä¿½ºÅÒ Ä¿¼­¸¦ »ç¿ëÇÏ´Â °Íµµ ¹°·Ð °¡´ÉÇÏ´Ù. ÀÌ ÇÔ¼ö°¡ ¸®ÅÏÇØ ÁÖ´Â ÀÌÀü Ä¿¼­ ÇÚµéÀ» hOld¿¡ º¸°üÇØ ³õÀº ÈÄ ÀÛ¾÷ÀÌ ³¡³ª¸é ¿ø·¡ÀÇ Ä¿¼­·Î º¹±¸½ÃÄ×´Ù. ½Ã°£ÀÌ ¿À·¡ °É¸®´Â ÀÛ¾÷À» ÇÒ ¶§´Â ÀÌ·± Ä¿¼­ º¯°æ Äڵ带 ¹Ýµå½Ã »ðÀÔÇÏ¿© ÀÛ¾÷ÁßÀÓÀ» ¾Ë·ÁÁÖ¾î¾ß ÇÑ´Ù.

¿¹Á¦ 2

´ÙÀ½ ¿¹Á¦´Â ¸¶¿ì½ºÀÇ ¿ÞÂÊ ¹öÆ°À» ´©¸£¸é ¸ð·¡½Ã°è ¸ð¾çÀÇ Ä¿¼­¸¦ º¸¿©ÁÖ°í ¿À¸¥ÂÊ ¹öÆ°À» ´©¸£¸é È­»ìÇ¥ ¸ð¾çÀÇ Ä¿¼­¸¦ º¸¿©ÁØ´Ù. ÀÏÁ¤ÇÑ Á¶°Ç¿¡ µû¶ó Ä¿¼­ÀÇ ¸ð¾çÀ» º¯°æÇÏ´Â ¿¹Á¦ÀÌ´Ù.

LRESULT CALLBACK WndProc(HWND hWnd,UINT iMessage,WPARAM wParam,LPARAM lParam)
{
	HDC hdc;
	PAINTSTRUCT ps;
	char Mes[]="¿ÞÂÊ=¸ð·¡½Ã°è, ¿À¸¥ÂÊ=È­»ìÇ¥";

	switch(iMessage) {
	case WM_LBUTTONDOWN:
		SetCursor(LoadCursor(NULL,IDC_WAIT));
		return 0;
	case WM_RBUTTONDOWN:
		SetCursor(LoadCursor(NULL,IDC_ARROW));
		return 0;
	case WM_PAINT:
		hdc=BeginPaint(hWnd, &ps);
		TextOut(hdc,10,10,Mes,lstrlen(Mes));
		EndPaint(hWnd, &ps);
		return 0;
	case WM_DESTROY:
		PostQuitMessage(0);
		return 0;
	}
	return(DefWindowProc(hWnd,iMessage,wParam,lParam));
}

WM_LBUTTONDOWN¿¡¼­ IDC_WAIT·Î Ä¿¼­¸¦ º¯°æÇÏ°í WM_RBUTTONDOWN¿¡¼­ IDC_ARROW·Î Ä¿¼­¸¦ º¯°æÇÏ¿´´Ù. ±×·¯³ª ÀÌ ¿¹Á¦´Â ¿øÇϴ´ë·Î µ¿ÀÛÇÏÁö ¾ÊÀ¸¸ç Ä¿¼­¸¦ ¿òÁ÷À̸é Ç×»ó È­»ìÇ¥ ¸ð¾çÀ¸·Î º¯°æµÇ¾î ¹ö¸°´Ù. ¿Ö³ÄÇÏ¸é ¸¶¿ì½º Ä¿¼­°¡ ¿òÁ÷ÀÏ ¶§¸¶´Ù WM_SETCURSOR ¸Þ½ÃÁö°¡ ¹ß»ýÇϸç ÀÌ ¸Þ½ÃÁöÀÇ µðÆúÆ® ó¸® ·çƾ¿¡¼­ Ä¿¼­¸¦ À©µµ¿ì Ŭ·¡½º¿¡ µî·ÏµÈ °ÍÀ¸·Î ¹Ù²Ù¾î ¹ö¸®±â ¶§¹®ÀÌ´Ù. ¸¸¾à ÀÌ·± ¹æ¹ý´ë·Î Çѹø º¯°æÇÑ Ä¿¼­°¡ ±×´ë·Î À¯ÁöµÇ±â¸¦ ¹Ù¶õ´Ù¸é À©µµ¿ì Ŭ·¡½ºÀÇ Ä¿¼­¸¦ NULL·Î ÁöÁ¤ÇØ¾ß ÇÑ´Ù.

WndClass.hCursor=NULL;

ÀÌ·¸°Ô Çϸé WM_SETCURSOR ¸Þ½ÃÁö°¡ ¹ß»ýÇصµ ÇöÀç ¼³Á¤µÈ Ä¿¼­°¡ º¯°æµÇÁö ¾Ê´Â´Ù. ±×·¯³ª ÀÌ ¹æ¹ýÀº ºñÀÛ¾÷¿µ¿ª¿¡ ÀÖ´ø Ä¿¼­°¡ °©ÀÚ±â ÀÛ¾÷ ¿µ¿ª¿¡ µé¾î¿Ã ¶§ Á¦´ë·Î Ä¿¼­ ¸ð¾çÀÌ º¯°æµÇÁö ¾ÊÀ¸¹Ç·Î ¹®Á¦°¡ ÀÖ´Ù.

¿¹Á¦ 3

´ÙÀ½ ¿¹Á¦´Â ¾ÕÀÇ ¿¹Á¦¸¦ ¼öÁ¤ÇÏ¿© Á¦´ë·Î µ¿ÀÛÇϵµ·Ï ¹Ù²Ù¾î º» °ÍÀÌ´Ù.

LRESULT CALLBACK WndProc(HWND hWnd,UINT iMessage,WPARAM wParam,LPARAM lParam)
{
	HDC hdc;
	PAINTSTRUCT ps;
	char Mes[]="¿ÞÂÊ=¸ð·¡½Ã°è, ¿À¸¥ÂÊ=È­»ìÇ¥";
	static HCURSOR hNowCursor;

	switch(iMessage) {
	case WM_LBUTTONDOWN:
		hNowCursor=LoadCursor(NULL,IDC_WAIT);
		return 0;
	case WM_CREATE:
	case WM_RBUTTONDOWN:
		hNowCursor=LoadCursor(NULL,IDC_ARROW);
		return 0;
	case WM_SETCURSOR:
		if (LOWORD(lParam) == HTCLIENT) {
			SetCursor(hNowCursor);
			return TRUE;
		}
		break;
	case WM_PAINT:
		hdc=BeginPaint(hWnd, &ps);
		TextOut(hdc,10,10,Mes,lstrlen(Mes));
		EndPaint(hWnd, &ps);
		return 0;
	case WM_DESTROY:
		PostQuitMessage(0);
		return 0;
	}
	return(DefWindowProc(hWnd,iMessage,wParam,lParam));
}

hNowCursor¶ó´Â Á¤Àû º¯¼ö¿¡ ÇöÀç ¼³Á¤ÇÒ Ä¿¼­ÀÇ Çڵ鸸À» ´ëÀÔÇØ ³õ°í WM_SETCURSOR ¸Þ½ÃÁö¸¦ ¹Þ¾ÒÀ» ¶§ ÀÌ ÇÚµéÀÌ °¡¸®Å°´Â Ä¿¼­¸¦ »ç¿ëÇϵµ·Ï ÇÏ¿´´Ù. ÀÌ·¸°Ô µÇ¸é ÇÁ·Î±×·¥ÀÇ »óÅ¿¡ µû¶ó ¿øÇÏ´Â Ä¿¼­¸¦ ¸¶À½´ë·Î »ç¿ëÇÒ ¼ö ÀÖ´Ù.

Âü°íÇÔ¼ö

GetCursor : ÇöÀç ¼³Á¤µÇ¾î ÀÖ´Â Ä¿¼­ÀÇ ÇÚµéÀ» ±¸ÇÑ´Ù.

Ç÷§Æû

95ÀÌ»ó

ÂüÁ¶

 


written by http://www.winapi.co.kr