WM_USER

Àμö

wParam, lParam ¸ðµÎ Àǹ̰¡ Á¤ÇØÁ® ÀÖÁö ¾Ê´Ù. ÀÀ¿ë ÇÁ·Î±×·¥ÀÌ Àǹ̸¦ Á¤Çؼ­ »ç¿ëÇÒ ¼ö ÀÖ´Ù.

¼³¸í

ÀÌ ¸Þ½ÃÁö´Â ½ÇÁ¦·Î Á¤ÀǵǾî ÀÖ´Â ½Ã½ºÅÛ ¸Þ½ÃÁö°¡ ¾Æ´Ï¸ç »ç¿ëÀÚ Á¤ÀÇ ¸Þ½ÃÁöÀÇ ½ÃÀÛ ¹üÀ§¸¦ ÁöÁ¤ÇÏ´Â »ó¼ö°ªÀÌ´Ù. ¸Þ½ÃÁö´Â Á¤¼ö°ª Çϳª·Î Ç¥ÇöµÇ´Âµ¥ À©µµ¿ìÁî´Â ¸Þ½ÃÁöÀÇ ¹üÀ§¸¦ ´ÙÀ½°ú °°ÀÌ Á¤ÀÇÇÏ°í ÀÖ´Ù.

¹üÀ§

¼³¸í

0~WM_USER-1

¿î¿µÃ¼Á¦°¡ Á¤ÀÇÇÏ´Â ½Ã½ºÅÛ ¸Þ½ÃÁö. WM_PAINT, WM_TIMER µîÀÇ ¸Þ½ÃÁöµéÀÌ ¸ðµÎ ÀÌ ¹üÀ§¿¡ ¼ÓÇÑ´Ù.

WM_USER~WM_APP-1

À©µµ¿ì Ŭ·¡½º°¡ Á¤ÀÇÇÏ´Â »ç¿ëÀÚ Á¤ÀÇ ¸Þ½ÃÁö

WM_APP~0xBFFF

ÀÀ¿ë ÇÁ·Î±×·¥ÀÌ Á¤ÀÇÇÏ´Â »ç¿ëÀÚ Á¤ÀÇ ¸Þ½ÃÁö

0xC000~0XFFFF

¹®ÀÚ¿­·Î µî·ÏµÇ´Â ¸Þ½ÃÁö

0x10000~ ÀÌÈÄÀÇ »ç¿ëÀ» À§ÇØ ¿¹¾àµÈ ¿µ¿ªÀ̸ç ÇöÀç´Â »ç¿ëµÇÁö ¾Ê´Â´Ù.

WM_USER´Â ÇÑ À©µµ¿ì Ŭ·¡½º¸¦ À§ÇÑ °íÀ¯ÀÇ ¸Þ½ÃÁö¸¦ Á¤ÀÇÇϱâ À§ÇÑ »ó¼ö°ªÀ̸ç ÀÌ ¹üÀ§ ÀÌÈĺÎÅÍ À©µµ¿ì Ŭ·¡½ºÀÇ »ç¿ëÀÚ Á¤ÀÇ ¸Þ½ÃÁö¸¦ ¸¸µé ¼ö ÀÖ´Ù. ÀÌ °ªÀº 0x400À¸·Î Á¤ÀǵǾî ÀÖÀ¸¸ç º¸Åë WM_USER+nÀ¸·Î »ç¿ëÀÚ Á¤ÀÇ ¸Þ½ÃÁö¸¦ Á¤ÀÇÇÑ´Ù. À̶§ nÀº 1º¸´Ù Å« Á¤¼öÀÌ¸ç »ç¿ëÀÚ Á¤ÀÇ ¸Þ½ÃÁö°£ÀÇ ±¸ºÐÀ» À§ÇØ »ç¿ëµÈ´Ù. ¿©·¯ °³ÀÇ »ç¿ëÀÚ Á¤ÀÇ ¸Þ½ÃÁö°¡ ÇÊ¿äÇÏ´Ù¸é WM_USER+1, WM_USER+2, WM_USER+3,... ½ÄÀ¸·Î °è¼Ó nÀ» Áõ°¡½ÃÄÑ °¡¸ç ¸Þ½ÃÁö¸¦ Á¤ÀÇÇÒ ¼ö ÀÖ´Ù. À©µµ¿ìÁî´Â WM_USERÀÌÈÄ 0x8000±îÁö »ç¿ëÀÚ Á¤ÀÇ ¸Þ½ÃÁö ¿µ¿ªÀ¸·Î Á¤ÀÇÇÏ°í ÀÖÀ¸¹Ç·Î nÀº ÃÖ´ë 0x7c00±îÁö °¡´ÉÇÏ´Ù. WM_USER+nÀ» °ð¹Ù·Î »ç¿ëÇÒ ¼öµµ ÀÖÀ¸¸ç ÀÚÁÖ »ç¿ëÇÒ °æ¿ì ´ÙÀ½°ú °°ÀÌ ¸ÅÅ©·Î¸¦ Á¤ÀÇÇÏ¿© º°µµÀÇ ¸Þ½ÃÁö¸¦ ¸¸µé ¼ö ÀÖ´Ù.

#define WM_MYMESSAGE WM_USER+1

ÀÌ·¸°Ô ¸ÅÅ©·Î¸¦ Á¤ÀÇÇØ ³õ°í ÀÌÈĺÎÅÍ WM_MYMESSAGE¶ó´Â ¸íĪÀ» ´ë½Å »ç¿ëÇÏ¸é µÈ´Ù. Ç¥ÁØ ÄÁÆ®·Ñ Áß ÀϺδ ÀڽŸ¸ÀÇ »ç¿ëÀÚ Á¤ÀÇ ¸Þ½ÃÁö¸¦ Á¤ÀÇÇÏ¿© »ç¿ëÇÏ°í ÀÖ´Ù. µû¶ó¼­ WM_USER+nÀº °¡±ÞÀûÀ̸é ÇÑ À©µµ¿ì Ŭ·¡½º³»¿¡¼­¸¸ Á¤ÀÇÇÏ¿© »ç¿ëÇØ¾ß Çϸç ÀÀ¿ë ÇÁ·Î±×·¥°£ÀÇ Åë½Å¿¡´Â »ç¿ëÇÏÁö ¾Ê´Â °ÍÀÌ ¹Ù¶÷Á÷ÇÏ´Ù. Ç¥ÁØ ÄÁÆ®·ÑÀ» ¼­ºêŬ·¡½ÌÇßÀ» °æ¿ì ÇԺηΠWM_USER+nÀ» »ç¿ëÇϸé Ç¥ÁØ ÄÁÆ®·Ñ °íÀ¯ÀÇ ¸Þ½ÃÁö¿Í Ãæµ¹ÀÌ ¹ß»ýÇÒ ¼ö ÀÖ´Ù.

¸®ÅÏ

¸®ÅÏ°ªÀÇ Àǹ̴ Á¤ÇØÁ® ÀÖ´Ù. ÀÀ¿ë ÇÁ·Î±×·¥ÀÌ Àǹ̸¦ Á¤Çؼ­ »ç¿ëÇÒ ¼ö ÀÖ´Ù. ÀÌ ¸Þ½ÃÁö·Î ¾î¶² Áú¹®À» ÇÏ°íÀÚÇÒ ¶§´Â ¸®ÅÏ°ªÀ» Á¤ÀÇÇÏ¸ç ±×·¸Áö ¾ÊÀ» °æ¿ì´Â Åë»ó ¸®ÅÏ°ªÀ» »ç¿ëÇÏÁö ¾Ê´Â´Ù.

¿¹Á¦

¿¹Á¦ 1

´ÙÀ½ ¿¹Á¦´Â »ç¿ëÀÚ Á¤ÀÇ ¸Þ½ÃÁö·Î À©µµ¿ì¸¦ À̵¿½ÃŲ´Ù.

LRESULT CALLBACK WndProc(HWND hWnd,UINT iMessage,WPARAM wParam,LPARAM lParam)
{
	HDC hdc;
	PAINTSTRUCT ps;
	RECT wrt;
	TCHAR Mes[]="¿ÞÂÊ ¸¶¿ì½º ¹öÆ°À» ´©¸£¸é À̵¿ÇÕ´Ï´Ù";

	switch(iMessage) {
	case WM_USER+1:
		GetWindowRect(hWnd,&wrt);
		wrt.left+=wParam;
		wrt.right+=wParam;
		wrt.top+=lParam;
		wrt.bottom+=lParam;
		MoveWindow(hWnd,wrt.left,wrt.top,wrt.right-wrt.left,wrt.bottom-wrt.top,TRUE);
		return 0;
	case WM_LBUTTONDOWN:
		SendMessage(hWnd,WM_USER+1,(WPARAM)-3,(LPARAM)5);
		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_USER+1Àº À©µµ¿ì¸¦ À̵¿Ç϶ó´Â ¶æÀ̸ç wParamÀº ¼öÆò À̵¿ °Å¸®, lParamÀº ¼öÁ÷ À̵¿ °Å¸®·Î Á¤ÀÇÇÏ¿´´Ù. WM_USER+1À» ¹ÞÀ¸¸é ÀÌ ÀμöµéÀÌ ÁöÁ¤ÇÏ´Â °Å¸®¸¸Å­ À©µµ¿ì¸¦ À̵¿½ÃŲ´Ù.

Ç÷§Æû

95ÀÌ»ó

ÂüÁ¶

WM_APP


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