¹®ÀÚ¸¦ ÀÔ·ÂÇÏ´Â ±âº»ÀûÀÎ ÀåÄ¡´Â Å°º¸µåÀÌ´Ù. OCRÀ̳ª À½¼º, Ææ°°Àº ´ë¾ÈÀÌ ÀüÇô ¾ø´Â °ÍÀº ¾Æ´ÏÁö¸¸ ¾ÆÁ÷µµ ¹®ÀÚÀԷ¿ëÀ¸·Î Å°º¸µå¸¸ÇÑ ÀåÄ¡°¡ ¾øÀ¸¸ç, ÇÑ µ¿¾ÈÀº ¾Æ¸¶µµ Å°º¸µå°¡ °è¼Ó »ç¿ëµÉ °ÍÀÌ´Ù. GUI ¿î¿µÃ¼Á¦ÀÎ À©µµ¿ìÁîÀÇ ±âº» ÀÔ·ÂÀåÄ¡µµ ¾ÆÁ÷±îÁö´Â ¸¶¿ì½º°¡ ¾Æ´Ï¶ó Å°º¸µåÀÌ´Ù. ±×·¡¼ ¿ì¸®´Â ¹®ÀÚÀÔ·ÂÀ» ÇÁ·Î±×·¡¹ÖÇϱâ À§ÇØ Å°º¸µå¿Í ¹®ÀÚÀÇ °ü°è¸¦ ¸ÕÀú ¾Ë¾Æ º¼ ÇÊ¿ä°¡ ÀÖ´Ù. Å°º¸µå¿¡ ÀÇÇØ ¹®ÀÚ°¡ ¾î¶² ½ÄÀ¸·Î ÀԷµǴÂÁö¸¦ ¿¬±¸Çغ¸ÀÚ.
Å°º¸µå´Â Å°º¸µå µå¶óÀ̹ö°¡ °ü¸®Çϴµ¥ »ç¿ëÀÚ°¡
Å°¸¦ ´©¸£°Å³ª ¶¿ ¶§ µå¶óÀ̹ö´Â Å°ÀÇ ´¸²°ú ¶³¾îÁüÀ» ¿î¿µÃ¼Á¦¿¡ º¸°í(ÀÎÅÍ·´Æ®)ÇÑ´Ù. ¿î¿µÃ¼Á¦´Â Å°º¸µå µå¶óÀ̹ö·ÎºÎÅÍ ÀÌ º¸°í¸¦ ¹Þ¾ÒÀ» ¶§ Æ÷Ä¿½º¸¦
°¡Áø À©µµ¿ì¿¡°Ô ¸Þ½ÃÁö¸¦ Àü´ÞÇÏ¿© Å°º¸µå·ÎºÎÅÍ ÀÔ·ÂÀÌ ÀÖ¾úÀ½À» ¾Ë·ÁÁØ´Ù. À̶§ Àü´ÞµÇ´Â ¸Þ½ÃÁö´Â <Alt>Å°ÀÇ ´¸² ¿©ºÎ¿Í Å°ÀÇ »óÅ¿¡ µû¶ó
WM_(SYS)KEYDOWN(UP) Áß Çϳª°¡ µÈ´Ù. ¹°·Ð wParam, lParamÀ¸·Î´Â ¾î¶² Å°°¡ ´·¯Á³´ÂÁö, ´Ù¸¥ Å°ÀÇ
»óÅ´ ¾î¶²Áö¿¡ ´ëÇÑ Á¤º¸°¡ Àü´ÞµÉ °ÍÀÌ´Ù.
Å°º¸µå´Â Å°ÀÇ ´¸²°ú ¶³¾îÁüÀ» º¸°íÇÒ »ÓÀÌÁö ¹®ÀÚÀÇ ÀԷ¿¡´Â ÀüÇô °ü¿©ÇÏÁö ¾Ê´Â´Ù. ÀÀ¿ë ÇÁ·Î±×·¥ÀÌ Å°º¸µå ¸Þ½ÃÁö·ÎºÎÅÍ ÀÔ·ÂµÈ ¹®ÀÚ¸¦ °è»êÇØ ³»¾ß ÇÑ´Ù. ¿¹¸¦ µé¾î <r>Å°°¡ ´·¯Á³À¸¸é r ¹®ÀÚ¸¦ ÀԷ¹ްí, <\>Å°°¡ ´·¯Á³À¸¸é \ ¹®ÀÚ¸¦ ÀԷ¹ÞÀ¸¸é µÈ´Ù. ±×·±µ¥ ´·¯Áø Å°·ÎºÎÅÍ ´ëÀÀµÇ´Â ¹®ÀÚ¸¦ ¾Ë¾Æ³»´Â ÀÛ¾÷ÀÌ »ý°¢Ã³·³ ±×·¸°Ô °£´ÜÇÏÁö°¡ ¾Ê´Ù. <r>Å°¸¦ ´·¶À» ¶§ ÀԷµǾî¾ß ÇÒ ¹®ÀÚ´Â r, R, ¤¡, ¤¢ ³Ý Áß Çϳª°¡ µÇ´Âµ¥ ÇѱÛÅ°, <Shift>, <Caps Lock> µî ÁÖº¯ »óȲ¿¡ ¸¹Àº ¿µÇâÀ» ¹Þ°Ô µÈ´Ù.
»Ó¸¸ ¾Æ´Ï¶ó ÇöÀç Å°º¸µå°¡ 2¹ú½ÄÀÎÁö 3¹ú½ÄÀÎÁö, ¶Ç ÀϺ»¾î ¸ðµåÀÎÁö ·¯½Ã¾Æ¾î ¸ðµåÀÎÁö¿¡ µû¶ó¼µµ ½ÇÁ¦ ÀԷ¹ÞÀ» ¹®ÀÚ°¡ ´Þ¶óÁø´Ù. ÀÀ¿ë ÇÁ·Î±×·¥ÀÌ WM_KEYDOWNÀ» ¹Þ¾Æ ÀÌ ¸Þ½ÃÁö·ÎºÎÅÍ Á¤È®ÇÑ ¹®ÀÚ Çؼ®À» Á÷Á¢ ÇÏ´Â °ÍÀº ¹«Ã´ ¾î·Æ°í ¹ø°Å·Î¿î ÀÏÀÌ´Ù. ±×·¡¼ ¿î¿µÃ¼Á¦¿¡°Ô Áö±Ý ¹ÞÀº Å°º¸µå ¸Þ½ÃÁö¸¦ ¾î¶² ¹®ÀÚ·Î Çؼ®ÇØ¾ß ÇÒ Áö¸¦ ¹°¾î º¼ ¼ö Àִµ¥ ÀÌ ¶§ »ç¿ëÇÏ´Â ÇÔ¼ö°¡ ¹Ù·Î TranslateMessage ÇÔ¼öÀÌ´Ù. ÀÌ ÇÔ¼ö´Â Åë»ó ¸Þ½ÃÁö ·çÇÁ¿¡ Æ÷ÇԵǾî ÀÖÀ¸¸ç GetMessage°¡ Å¥¿¡¼ ¸Þ½ÃÁö¸¦ ²¨³»´Â Áï½Ã È£ÃâµÈ´Ù.
while(GetMessage(&Message,0,0,0)) {
TranslateMessage(&Message);
DispatchMessage(&Message);
}
¹ÞÀº ¸Þ½ÃÁö°¡ WM_KEYDOWNÀÏ °æ¿ì TranslateMessage ÇÔ¼ö´Â ÇöÀç Å°º¸µåÀÇ ·¹À̾ƿô, Shift, Caps Lock, ±âŸ ÀԷ¸ðµå µîÀÇ ¿©·¯ °¡Áö »óŸ¦ Á¾ÇÕÀûÀ¸·Î ÆÇ´ÜÇÏ¿© ÃÖÁ¾ÀûÀ¸·Î ÀԷµǾî¾ß ÇÒ ¹®ÀÚ¸¦ °è»êÇØ ³»¸ç ±× °á°ú¸¦ WM_CHAR ¸Þ½ÃÁö·Î º¸³»ÁØ´Ù. ¸¸¾à Å°º¸µå ¸Þ½ÃÁö°¡ ¾Æ´Ï°Å³ª ¹®ÀÚ¿Í »ó°ü¾ø´Â Å°ÀÏ °æ¿ì, ¿¹¸¦ µé¾î Æã¼ÇÅ°³ª Ä¿¼À̵¿Å°ÀÎ °æ¿ì´Â ¾Æ¹« Àϵµ ÇÏÁö ¾ÊÀ¸¸ç DispatchMessage·Î ÀÌ ¸Þ½ÃÁö¸¦ Àü´ÞÇÏ¿© WndProcÀ¸·Î ¸Þ½ÃÁö¸¦ º¸³½´Ù.
±×·¡¼ ÀÀ¿ë ÇÁ·Î±×·¥ÀÌ ¹®ÀÚ¸¦ ÀԷ¹ÞÀ¸·Á¸é ´Ù¸¥ °ÍÀº ½Å°æ¾µ ÇÊ¿ä¾øÀÌ WM_CHAR ¸Þ½ÃÁö¸¦ ¹Þ°í wParamÀ¸·Î ¾î¶² ¹®ÀÚÄڵ尡 ¿Ô´ÂÁö¸¸ º¸¸é µÇ´Â °ÍÀÌ´Ù. ¿ä¾àÇÏÀÚ¸é ¹®ÀÚÀÔ·ÂÀ» ¹ÞÀ» ¶§´Â WM_CHAR ¸Þ½ÃÁö¸¦ ÇÁ·Î±×·¡¹ÖÇØ¾ß Çϸç ÀÌ ¸Þ½ÃÁö¸¦ »ç¿ëÇϸé ÃÖÁ¾ÀûÀ¸·Î ÀÔ·ÂµÈ ¹®ÀÚ¸¸ ¹ÞÀ» ¼ö ÀÖ´Ù.