Å°º¸µå·ÎºÎÅÍ ¹®ÀÚ¸¦ ÀԷ¹ްíÀÚ ÇÒ °æ¿ì´Â WM_CHAR ¸Þ½ÃÁö¸¦ »ç¿ëÇÏ¸é µÈ´Ù´Â °ÍÀ» ¹è¿ü´Ù. ¹®ÀÚ ÀÌ¿ÜÀÇ Å°¸¦ ÀÔ·Â ¹ÞÀ¸·Á¸é WM_CHAR ¸Þ½ÃÁö¸¸À¸·Î´Â ÀÔ·ÂÀ» ¹ÞÀ» ¼ö ¾ø´Ù. ¿¹¸¦ µé¾î Ä¿¼ À̵¿Å°¶óµç°¡ Ins, Del, PgUp, Æã¼ÇÅ° µîÀÇ Å°´Â ¹®ÀÚÅ°°¡ ¾Æ´Ï±â ¶§¹®¿¡ WM_CHAR ¸Þ½ÃÁö·Î´Â °ËÃâÇØ ³¾ ¼ö ¾ø´Ù. À̶§´Â WM_KEYDOWN ¸Þ½ÃÁö¸¦ »ç¿ëÇØ¾ß ÇÑ´Ù. WM_KEYDOWN ¸Þ½ÃÁö´Â wParam¿¡ ¹®ÀÚ Äڵ尡 ¾Æ´Ñ °¡»ó Å°ÄÚµå¶ó´Â °ÍÀ» Àü´ÞÇØ ÁØ´Ù. °¡»óÅ°ÄÚµå(Virtual Key Code)¶õ ½Ã½ºÅÛ¿¡ ÀåÂøµÈ Å°º¸µåÀÇ Á¾·ù¿¡ »ó°ü¾øÀÌ Å°¸¦ ÀԷ¹ޱâ À§ÇØ ¸¸µé¾îÁø Äڵ尪ÀÌ¸ç ´ÙÀ½°ú °°ÀÌ Á¤ÀǵǾî ÀÖ´Ù.
WM_KEYDOWN ¸Þ½ÃÁö°¡ ¹ß»ýÇß°í wParamÀ¸·Î VK_HOMEÀÌ Àü´ÞµÇ¾úÀ¸¸é »ç¿ëÀÚ°¡ HomeÅ°¸¦ ´©¸¥ °ÍÀÌ´Ù. ¼ýÀÚ ¹× ¿µ¹®ÀÚÀÇ °¡»ó Å°ÄÚµå´Â ¾Æ½ºÅ° ÄÚµå¿Í °°À¸¸ç ¸ÅÅ©·Î »ó¼ö´Â Á¤ÀǵǾî ÀÖÁö ¾ÊÀ¸¹Ç·Î ¾Æ½ºÅ° ÄÚµå¿Í wParamÀ» ¹Ù·Î ºñ±³ÇÏ¸é µÈ´Ù. °¡»ó Å° ÄÚµå´Â Áö±Ý±îÁö ³ª¿Â ¸ðµç Å°º¸µå´Â ¹°·ÐÀÌ°í ¾ÕÀ¸·Î ¸¸µé¾îÁú Å°º¸µå±îÁö °í·ÁÇÏ¿© ¸¸µé¾îÁø ¹ü¿ëÀûÀÎ ÄÚµåÀÌ´Ù. ÄÚµåÇ¥¸¦ º¸¸é VK_SELECT, VK_EXECUTE, VK_HELP µî°ú °°ÀÌ ÇöÀç 101Å°¿¡ ¾ø´Â Å°°ªµµ ¹Ì¸® Á¤ÀǵǾî ÀÖÀ¸¸ç Æã¼ÇÅ°µµ F16±îÁö ¹Ì¸® ¸¸µé¾î ³õ¾Ò´Ù. ÀÌ¿Ü Çѱ¹°ú ÀϺ» µîÀÇ 2¹ÙÀÌÆ® ¹®ÀÚ¸¦ Áö¿øÇϱâ À§ÇÑ Æ¯¼öÇÑ °¡»óÅ°±îÁö Æ÷ÇԵǾî Àִµ¥ °¡»ó Å° Äڵ带 ÀÌ·¸°Ô ¹ü¿ëÀûÀ¸·Î ¸¸µé¾î ³õÀº ÀÌÀ¯´Â ¾ÕÀ¸·Î À©µµ¿ìÁ ´Ù¸¥ ½Ã½ºÅÛÀ¸·Î À̽ÄÇÏ´õ¶óµµ Å° Äڵ带 ±×´ë·Î ¾µ ¼ö ÀÖµµ·Ï Çϱâ À§ÇÑ ¹è·ÁÀÌ´Ù. WM_KEYDOWN ¸Þ½ÃÁö ó¸® ·çƾ¿¡¼ wParamÀÇ °ª°ú °¡»ó Å°Äڵ尪À» ºñ±³ÇØ º½À¸·Î½á ¾î¶² Å°°¡ ´·¯Á³´ÂÁö¸¦ ±¸ºÐÇÑ´Ù. lParamÀ¸·Î Àü´ÞµÇ´Â °ªÀº WM_CHAR¿Í µ¿ÀÏÇϳª ¿ª½Ã Àß »ç¿ëµÇÁö ¾Ê´Â´Ù. ´ÙÀ½ÀÇ KeyDown¿¹Á¦´Â Ä¿¼ À̵¿Å°¸¦ °ËÃâÇÏ¿© ¹®ÀÚ "A"¸¦ ȸ鿡¼ »óÇÏÁ¿ì·Î À̵¿ÇÏ´Â ¿¹Á¦ÀÌ´Ù. ¼Ò½º¸¦ ÀÔ·ÂÇغ¼ ÇÊ¿ä¾øÀÌ ´«À¸·Î º¸±â¸¸ Çصµ ÀÌÇØÇÒ ¼ö ÀÖÀ» °ÍÀÌ´Ù.
x,y¶ó´Â Á¤¼öÇü º¯¼ö µÎ °³¸¦ 100À¸·Î ÃʱâÈ ÇÏ°í WM_PAINT ¸Þ½ÃÁö¿¡¼ ÀÌ º¯¼öÀÇ À§Ä¡¿¡ ¹®ÀÚ "A"¸¦ Ãâ·ÂÇÑ´Ù. WM_KEYDOWN ¸Þ½ÃÁö¿¡¼´Â wParamÀ» Àоî Ä¿¼ À̵¿Å°ÀÏ °æ¿ì x,y°ªÀ» Ä¿¼ À̵¿Å°ÀÇ ¹æÇâ¿¡ µû¶ó Á¶Á¤ÇÔÀ¸·Î½á "A"¸¦ ȸ鿡¼ À̵¿½ÃŲ´Ù. ¹°·Ð WM_KEYDOWN¿¡¼ ÁÂÇ¥¸¦ Á¶Á¤ÇÑ ÈÄ´Â ¹Ýµå½Ã ȸ鿡 ÁÂÇ¥ Á¶Á¤ÀÌ ¹Ý¿µµÇµµ·Ï InvalidateRect ÇÔ¼ö¸¦ È£ÃâÇØ ÁÖ¾î¾ß ÇÑ´Ù. ÇÁ·Î±×·¥ ½ÇÇàÁßÀÇ ¸ð½ÀÀº ´ÙÀ½°ú °°´Ù. Å°º¸µå¸¦ ´©¸¦ ¶§¸¶´Ù °¡»ó Å°Äڵ带 Á¡°ËÇÏ¿© Ä¿¼ À̵¿Å°¿¡ µû¶ó x,y ÁÂÇ¥°ªÀ» Á¶Á¤ÇÑ ÈÄ È¸éÀ» ´Ù½Ã ±×¸®°í ÀÖ´Ù. À̶§ ȸéÀ» ´Ù½Ã ±×¸®±â À§ÇØ InvaludateRect ÇÔ¼ö¸¦ È£ÃâÇϴµ¥ ¼¼¹ø° Àμö¿¡ TRUE¸¦ ÁÖ¾î ¹è°æÀ» Áö¿ìµµ·Ï ÇÏ¿´´Ù. ¸¸¾à ÀÌ Àμö¸¦ FALSE·Î º¯°æÇØ ÁÖ¸é ¾î¶»°Ô µÉ±î? Á÷Á¢ ½ÇÇàÇØ º¸¸é ¾Ë°ÚÁö¸¸ A¹®ÀÚ°¡ À̵¿Àº ÇÏÁö¸¸ ±âÁ¸ Ãâ·ÂµÈ A¹®ÀÚ°¡ Áö¿öÁöÁö´Â ¾Ê´Â´Ù. ÀÌ ¿¹¸¦ ÅëÇØ InvalidateRectÀÇ ¼¼¹ø° Àμö°¡ ¾î¶² ¿ªÇÒÀ» ÇÏ´ÂÁö ½±°Ô ÀÌÇØÇÒ ¼ö ÀÖÀ» °ÍÀÌ´Ù. WM_KEYDOWNÀÇ ¹Ý´ë ¸Þ½ÃÁö´Â WM_KEYUPÀ̸ç Å°°¡ ¶³¾îÁú ¶§ ¹ß»ýÇÑ´Ù. wParam, lParamÀÇ Àǹ̴ WM_KEYDOWN°ú µ¿ÀÏÇÏ´Ù. º°·Î Àß »ç¿ëµÇÁö ¾Ê´Â ¸Þ½ÃÁöÀÌ´Ù. |