WM_MOUSEACTIVATE

Àμö

wParam : È°¼ºÈ­µÈ ž ·¹º§ ºÎ¸ð À©µµ¿ìÀÇ ÇÚµéÀÌ´Ù.

LOWORD(lParam) : ¸¶¿ì½º¸¦ Ŭ¸¯ÇÑ À§Ä¡ÀÎ È÷Æ® Å×½ºÆ®°ªÀÌ´Ù. ÀÛ¾÷ ¿µ¿ªÀ» Ŭ¸¯ÇßÀ¸¸é HTCLIENT°ªÀÌ Àü´ÞµÈ´Ù.

HIWORD(lParam) : ÀÌ ¸Þ½ÃÁö¸¦ À¯¹ß½ÃŲ ¸¶¿ì½º ¸Þ½ÃÁöÀÇ ID°¡ Àü´ÞµÈ´Ù. ÀÌ ¸Þ½ÃÁöÀÇ ¸®ÅÏ°ª¿¡ µû¶ó ¸¶¿ì½º ¸Þ½ÃÁö´Â Å¥¿¡ ºÙ¿©Áö°Å³ª ¹ö·ÁÁø´Ù.

¼³¸í

»ç¿ëÀÚ°¡ ºñÈ°¼ºÈ­µÈ À©µµ¿ì¿¡¼­ ¸¶¿ì½º ¹öÆ°À» ´©¸¦ ¶§ ÀÌ ¸Þ½ÃÁö°¡ Àü´ÞµÈ´Ù. ÀÌ¹Ì È°¼ºÈ­µÇ¾î ÀÖÀº À©µµ¿ì¿¡¼­ ¸¶¿ì½º¸¦ ´©¸¦ ¶§´Â ÀÌ ¸Þ½ÃÁö°¡ Àü´ÞµÇÁö ¾Ê´Â´Ù. À©µµ¿ì´Â ÀÌ ¸Þ½ÃÁö¸¦ ¹Þ¾ÒÀ» ¶§ ÀÚ½ÅÀ» È°¼ºÈ­ÇÒ °ÍÀÎÁö, Àü´ÞµÈ ¸¶¿ì½º ¸Þ½ÃÁö´Â ¾î¶»°Ô ó¸®ÇÒ °ÍÀÎÁö °áÁ¤ÇØ¾ß ÇÑ´Ù. À̶§ wParam°ú lParam°ªÀ» ÀÐ¾î »ç¿ëÀÚ°¡ ¾î¶² ¸¶¿ì½º ¹öÆ°À» È­¸éÀÇ ¾î´À ºÎºÐ¿¡¼­ ´­·¶´ÂÁö¸¦ Á¶»çÇÒ ¼ö ÀÖ´Ù. DefWindowProcÀ¸·Î ÀÌ ¸Þ½ÃÁö¸¦ º¸³¾ °æ¿ì ÀÌ ¸Þ½ÃÁö´Â ºÎ¸ð À©µµ¿ì¿¡°Ô Àü´ÞµÇ¾î ºÎ¸ð À©µµ¿ì°¡ Â÷Àϵå À©µµ¿ìÀÇ È°¼ºÈ­ ¿©ºÎ¸¦ °áÁ¤ÇÑ´Ù.

ºÎ¸ð À©µµ¿ì°¡ Â÷Àϵ带 È°¼ºÈ­½ÃŲ´Ù¸é MA_NOACTIVATE(ANDEAT)¸¦ ¸®ÅÏÇÏ¿© ½Ã½ºÅÛÀÌ ´õ ÀÌ»ó ÀÌ ¸Þ½ÃÁö¸¦ ó¸®ÇÏÁö ¾Êµµ·Ï ÇØ¾ß ÇÑ´Ù.

ÀÌ ¸Þ½ÃÁö¿¡ ÀÇÇØ À©µµ¿ì°¡ È°¼ºÈ­µÇ¸é WM_ACTIVATE(APP), WM_NCACTIVATE, WM_SETFOCUS ¸Þ½ÃÁö°¡ ¿¬¼ÓÀûÀ¸·Î Àü´ÞµÈ´Ù. ÀÌ ¸Þ½ÃÁö´Â ¸¶¿ì½º ¹öÆ° ´©¸§ µ¿ÀÛ¿¡ ´ëÇØ Æ÷Ä¿½º¸¦ ¾î¶»°Ô ó¸®ÇÒ °ÍÀΰ¡¸¦ °áÁ¤Çϱâ À§ÇØ Àü´ÞµÇ´Â °ÍÀÌ´Ù. Æ÷Ä¿½º°¡ À̵¿µÈ ÈÄ¿¡ ¹ß»ýÇÏ´Â °ÍÀÌ ¾Æ´Ï¹Ç·Î Æ÷Ä¿½º º¯È­¿¡ µû¸¥ 󸮴 ÀÌ ¸Þ½ÃÁö¿¡¼­ ÇÏÁö ¾Ê´Â °ÍÀÌ ¿Ç´Ù.

¸®ÅÏ

À©µµ¿ì¸¦ È°¼ºÈ­ÇÒ °ÍÀΰ¡¿Í Àü´ÞµÈ ¸¶¿ì½º ¸Þ½ÃÁö¸¦ ¾î¶»°Ô ó¸®ÇÒ °ÍÀΰ¡¸¦ ÁöÁ¤ÇÑ´Ù.

°ª

¼³¸í

MA_ACTIVATE

À©µµ¿ì¸¦ È°¼ºÈ­ÇÏ¸ç ¸¶¿ì½º ¸Þ½ÃÁö´Â ¹ö¸®Áö ¾Ê´Â´Ù.

MA_ACTIVATEANDEAT

À©µµ¿ì¸¦ È°¼ºÈ­ÇÏ¸ç ¸¶¿ì½º ¸Þ½ÃÁö´Â ¹ö¸°´Ù.

MA_NOACTIVATE

À©µµ¿ì¸¦ È°¼ºÈ­ÇÏÁö ¾ÊÀ¸¸ç ¸¶¿ì½º ¸Þ½ÃÁö´Â ¹ö¸®Áö ¾Ê´Â´Ù.

MA_NOACTIVATEANDEAT

À©µµ¿ì¸¦ È°¼ºÈ­ÇÏÁöµµ ¾Ê°í ¸¶¿ì½º ¸Þ½ÃÁö¸¦ ¹ö¸®Áöµµ ¾Ê´Â´Ù.

¿¹Á¦

¿¹Á¦ 1

´ÙÀ½ ¿¹Á¦´Â È­¸éÀÇ Æ¯Á¤ À§Ä¡¿¡ "C"¹®ÀÚ¸¦ Ãâ·ÂÇϴµ¥ ¸¶¿ì½º ¿ÞÂÊ ¹öÆ°À¸·Î ÀÌ ¹®ÀÚÀÇ À§Ä¡¸¦ ¿Å±æ ¼ö ÀÖ´Ù. ¹öÆ°À» ´©¸£´Â Áï½Ã ¹®ÀÚÀÇ À§Ä¡°¡ ¹Ù²îÁö¸¸ ´Ü ºñÈ°¼ºÈ­ »óÅ¿¡¼­ È°¼ºÈ­ »óÅ·Π¹Ù²ð ¶§´Â ¸¶¿ì½º ¸Þ½ÃÁö¸¦ ó¸®ÇÏÁö ¾Ê´Â´Ù.

LRESULT CALLBACK WndProc(HWND hWnd,UINT iMessage,WPARAM wParam,LPARAM lParam)
{
	HDC hdc;
	PAINTSTRUCT ps;
	static int x,y;

	switch(iMessage) {
	case WM_MOUSEACTIVATE:
		return MA_ACTIVATEANDEAT;
	case WM_LBUTTONDOWN:
		x=LOWORD(lParam);
		y=HIWORD(lParam);
		InvalidateRect(hWnd,NULL,TRUE);
		return 0;
	case WM_PAINT:
		hdc=BeginPaint(hWnd, &ps);
		TextOut(hdc,x,y,"C",1);
		EndPaint(hWnd, &ps);
		return 0;
	case WM_DESTROY:
		PostQuitMessage(0);
		return 0;
	}
	return(DefWindowProc(hWnd,iMessage,wParam,lParam));
}

½ÇÇàÁßÀÇ ¸ð½ÀÀº ´ÙÀ½°ú °°´Ù.

WM_MOUSEACTIVATE ¸Þ½ÃÁö¸¦ ¹Þ¾ÒÀ» ¶§ À©µµ¿ì¸¦ È°¼ºÈ­Çϱâ´Â ÇÏÁö¸¸ ¸¶¿ì½º ¸Þ½ÃÁö¸¦ ¹ö¸²À¸·Î½á À̶§´Â WM_LBUTTONDOWN ¸Þ½ÃÁö°¡ ¹ß»ýÇÏÁö ¾Êµµ·Ï ÇÏ¿´´Ù. ºñÈ°¼ºÈ­ »óÅ¿¡¼­ ¸¶¿ì½º ¹öÆ°À» Ŭ¸¯ÇÒ °æ¿ì´Â ÀÌ Å¬¸¯À» À©µµ¿ì È°¼ºÈ­·Î¸¸ Çؼ®ÇÒ ¶§ ÀÌ·± ½ÄÀ¸·Î ó¸®ÇÑ´Ù. È°¼ºÈ­ÇÔ°ú µ¿½Ã¿¡ ¸¶¿ì½º ¸Þ½ÃÁöµµ °°ÀÌ Ã³¸®ÇÏ·Á¸é MA_ACTIVATE¸¦ ¸®ÅÏÇÑ´Ù. ¸¶¿ì½º Ŭ¸¯À¸·Î´Â È°¼ºÈ­ÇÏÁö ¾Êµµ·Ï ÇÏ°í ½Í´Ù¸é MA_NOACTIVATE(ANDEAT)¸¦ ¸®ÅÏÇØ ÁÖ¸é µÈ´Ù.

Ç÷§Æû

95ÀÌ»ó

ÂüÁ¶

 


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