WM_KEYDOWN

Àμö

wParam : °¡»ó ŰÄڵ尪ÀÌ¸ç ¾î¶² ۰¡ ´­·¯Á³´ÂÁö¸¦ ³ªÅ¸³½´Ù. °¡»ó ŰÄÚµå´Â Űº¸µåÀÇ Á¾·ù¿¡ µ¶¸³ÀûÀΠŰ Äڵ尪ÀÌ´Ù.

lParam : ´­·¯Áø Ű¿Í Űº¸µå »óÅ¿¡ ´ëÇÑ ¿©·¯ °¡Áö Á¤º¸¸¦ °¡Áö´Â ºñÆ® Çʵ尪ÀÌ¸ç °¢ ºñÆ®º°·Î ´ÙÀ½°ú °°Àº Á¤º¸°¡ Àü´ÞµÈ´Ù.

¼³¸í

Űº¸µå Æ÷Ä¿½º¸¦ °¡Áø À©µµ¿ì¿¡¼­ Űº¸µå¸¦ ´©¸¦ ¶§ ÀÌ ¸Þ½ÃÁö°¡ Àü´ÞµÈ´Ù. ´Ü, AltŰ¿Í ÇÔ²² ۸¦ ´­·¶À» ¶§´Â ÀÌ ¸Þ½ÃÁö ´ë½Å WM_SYSKEYDOWN ¸Þ½ÃÁö°¡ Àü´ÞµÈ´Ù. wParamÀ¸·Î ´­·¯Áø Ű¿¡ ´ëÇÑ Á¤º¸°¡ Àü´ÞµÇ¸ç lParamÀ¸·Î ¹Ýº¹ ȸ¼ö, ½ºÄµÄÚµå µîÀÇ Ãß°¡ Á¤º¸°¡ Àü´ÞµÈ´Ù. ƯÁ¤ Ű ÀԷ½à ¾î¶² ÀÛ¾÷À» ÇÏ·Á¸é ÀÌ ¸Þ½ÃÁö¸¦ »ç¿ëÇÑ´Ù. ´Ü, Ctrl+C, Ctrl+T µîÀÇ Á¶ÇÕŰ´Â ÀÌ ¸Þ½ÃÁö¿¡¼­ ó¸®ÇÏ´Â °Íº¸´Ù´Â ¾×¼¿·¯·¹ÀÌÅ͸¦ »ç¿ëÇÏ´Â °ÍÀÌ ´õ ÁÁ´Ù.

F10۰¡ ´­·¯Áö¸é DefWindowProcÀº ³»ºÎ Ç÷¹±×¸¸ ¼¼Æ®ÇØ ³õÀ¸¸ç À̶§ WM_KEYDOWN ¸Þ½ÃÁö´Â ¹ß»ýÇÏÁö ¾Ê´Â´Ù. ´ÙÀ½¹ø¿¡ F10Ű¿¡ ´ëÇØ WM_KEYUP ¸Þ½ÃÁö¸¦ ¹Þ¾ÒÀ» ¶§ ³»ºÎ Ç÷¹±×°¡ ¼¼Æ®µÇ¾î ÀÖÀ¸¸é ÀÌ ¸Þ½ÃÁö¸¦ WM_SYSCOMMANDÀÇ SC_KEYMENU¸¦ º¸³»ÁÖ¾î ¸ÞÀÎ ¸Þ´º¸¦ ¿­µµ·Ï ÇØÁØ´Ù.

Űº¸µå¸¦ ¶¿ ¶§´Â WM_KEYUP ¸Þ½ÃÁö°¡ Àü´ÞµÇ´Âµ¥ Űº¸µå´Â ÀÚµ¿ ¹Ýº¹ ±â´ÉÀ» °¡Áö°í Àֱ⠶§¹®¿¡ WM_KEYDOWNÀÌ ¿©·¯¹ø ¹ß»ýÇϰí WM_KEYUPÀÌ Çѹø¸¸ ¹ß»ýÇÒ ¼öµµ ÀÖ´Ù. À̶§ °¢ WM_KEYDOWN¿¡¼­ ÀÌ Å°°¡ óÀ½ ´­·¯Áø °ÍÀÎÁö ¹Ýº¹ÀûÀ¸·Î °è¼Ó ´­·¯Áø °ÍÀÎÁö´Â lParamÀÇ ºñÆ® 30À» º¸¸é ¾Ë ¼ö ÀÖ´Ù.

¸®ÅÏ

ÀÌ ¸Þ½ÃÁö¸¦ ó¸®ÇßÀ¸¸é 0À» ¸®ÅÏÇØ¾ß ÇÑ´Ù.

¿¹Á¦

¿¹Á¦ 1

´ÙÀ½ ¿¹Á¦´Â ´­·¯Áø ŰÀÇ °¡»ó ŰÄÚµå¿Í Ű µ¥ÀÌÅ͸¦ ¹®ÀÚ¿­·Î Á¶¸³ÇÏ¿© º¸¿©ÁØ´Ù.

LRESULT CALLBACK WndProc(HWND hWnd,UINT iMessage,WPARAM wParam,LPARAM lParam)
{
	HDC hdc;
	PAINTSTRUCT ps;
	static char Mes[128];

	switch(iMessage) {
	case WM_KEYDOWN:
		wsprintf(Mes,"VK=%d, lKeyData=%x",wParam,lParam);
		InvalidateRect(hWnd,NULL,TRUE);
		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));
}

Ç÷§Æû

95ÀÌ»ó

ÂüÁ¶

 


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