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