¿øÇü |
HCURSOR SetCursor(HCURSOR hCursor); |
MFC ¿øÇü |
ÇØ´çÇÏ´Â ÇÔ¼ö ¾øÀ½ |
Àμö |
¢ºhCursor : º¯°æÇÏ°íÀÚ ÇÏ´Â Ä¿¼ÀÇ ÇÚµéÀÌ¸ç º¸Åë LoadCursor³ª LoadImage·Î Àоî¿Â Ä¿¼ ¸®¼Ò½ºÀÇ ÇÚµéÀÌ´Ù. ¶Ç´Â CreateCursor ÇÔ¼ö·Î Á÷Á¢ Ä¿¼¸¦ ¸¸µé¾î »ç¿ëÇÒ ¼öµµ ÀÖ´Ù. ÀÌ Àμö°¡ NULLÀ̸é Ä¿¼¸¦ ȸ鿡¼ Á¦°ÅÇÑ´Ù. |
¸®ÅÏ |
ÀÌÀü¿¡ ¼³Á¤µÇ¾î ÀÖ´ø Ä¿¼ÀÇ ÇÚµéÀ» ¸®ÅÏÇϸç ÀÌ ÇÚµéÀº Ä¿¼¸¦ ¿ø·¡ »óÅ·ΠµÇµ¹¸± ¶§ »ç¿ëµÈ´Ù. ¸¸¾à ÀÌÀü¿¡ Ä¿¼°¡ ¼³Á¤µÇ¾î ÀÖÁö ¾Ê¾Ò´Ù¸é NULLÀÌ ¸®ÅϵȴÙ. |
¼³¸í |
¸¶¿ì½ºÀÇ ÇöÀç À§Ä¡¸¦ ¾Ë·ÁÁÖ´Â Ä¿¼¸¦ hCursor·Î º¯°æÇ쵂 ¸¸¾à ÀÌ¹Ì hCursor°¡ ¼³Á¤µÇ¾î ÀÖ´Ù¸é ¾Æ¹« Àϵµ ÇÏÁö ¾Ê´Â´Ù. Áï, °°Àº Ä¿¼¸¦ µÎ¹ø ¼³Á¤ÇÒ ¶§´Â ºÒÇÊ¿äÇÑ Ä¿¼ º¯°æÀ» ÇÏÁö ¾Ê´Â´Ù. ¿©·¯¹úÀÇ Ä¿¼¸¦ ÁغñÇØ µÎ°í ÇöÀç »óÅ¿¡ µû¶ó ´Ù¸¥ ¸ð¾çÀÇ Ä¿¼¸¦ »ç¿ëÇÏ°íÀÚ ÇÒ °æ¿ì ÀÌ ÇÔ¼ö·Î Ä¿¼¸¦ º¯°æÇÏ¸é µÈ´Ù. ´ÙÀ½ ¿¹Á¦´Â 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¿¡ º¸°üÇØ ³õÀº ÈÄ ÀÛ¾÷ÀÌ ³¡³ª¸é ¿ø·¡ÀÇ Ä¿¼·Î º¹±¸½ÃÄ×´Ù. ½Ã°£ÀÌ ¿À·¡ °É¸®´Â ÀÛ¾÷À» ÇÒ ¶§´Â ÀÌ·± Ä¿¼ º¯°æ Äڵ带 ¹Ýµå½Ã »ðÀÔÇÏ¿© ÀÛ¾÷ÁßÀÓÀ» ¾Ë·ÁÁÖ¾î¾ß ÇÑ´Ù. ´ÙÀ½ ¿¹Á¦´Â ¸¶¿ì½ºÀÇ ¿ÞÂÊ ¹öÆ°À» ´©¸£¸é ¸ð·¡½Ã°è ¸ð¾çÀÇ Ä¿¼¸¦ º¸¿©ÁÖ°í ¿À¸¥ÂÊ ¹öÆ°À» ´©¸£¸é È»ìÇ¥ ¸ð¾çÀÇ Ä¿¼¸¦ º¸¿©ÁØ´Ù. ÀÏÁ¤ÇÑ Á¶°Ç¿¡ µû¶ó Ä¿¼ÀÇ ¸ð¾çÀ» º¯°æÇÏ´Â ¿¹Á¦ÀÌ´Ù. 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 ¸Þ½ÃÁö°¡ ¹ß»ýÇصµ ÇöÀç ¼³Á¤µÈ Ä¿¼°¡ º¯°æµÇÁö ¾Ê´Â´Ù. ±×·¯³ª ÀÌ ¹æ¹ýÀº ºñÀÛ¾÷¿µ¿ª¿¡ ÀÖ´ø Ä¿¼°¡ °©ÀÚ±â ÀÛ¾÷ ¿µ¿ª¿¡ µé¾î¿Ã ¶§ Á¦´ë·Î Ä¿¼ ¸ð¾çÀÌ º¯°æµÇÁö ¾ÊÀ¸¹Ç·Î ¹®Á¦°¡ ÀÖ´Ù. ´ÙÀ½ ¿¹Á¦´Â ¾ÕÀÇ ¿¹Á¦¸¦ ¼öÁ¤ÇÏ¿© Á¦´ë·Î µ¿ÀÛÇϵµ·Ï ¹Ù²Ù¾î º» °ÍÀÌ´Ù. 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
|