°¡. ÄÁÆ®·ÑÈ­ ¹æ¹ý

µÎ °¡Áö ÄÁÆ®·ÑÈ­ ¹æ¹ý¿¡ ´ëÇØ ¾Ë¾Æ ºÃ´Âµ¥ Á÷°¨ÀûÀ¸·Î ´À³¥ ¼ö ÀÖ°ÚÁö¸¸ À©µµ¿ì ÄÁÆ®·Ñ·Î ¸¸µå´Â °Íº¸´Ù´Â ¿ÀºêÁ§Æ®·Î ¸¸µå´Â °ÍÀÌ ¿©·¯ ¸ð·Î À¯¸®ÇÏ´Ù. ±×·¸´Ù°í Çؼ­ À©µµ¿ì ÄÁÆ®·Ñ·Î ¸¸µå´Â °ÍÀÌ ¸ðµç ¸é¿¡¼­ ´Ù ³ª»Û °ÍÀº ¾Æ´Ï°í ¾à°£ÀÇ ÀåÁ¡µµ ÀÖ´Ù. À©µµ¿ìÁîÀÇ Ç¥ÁØ ÄÁÆ®·Ñ°ú °°Àº ¹æ½ÄÀ̶ó´Â Á¡¿¡¼­ OOP¸¦ ¸ð¸£´Â »ç¶÷µµ ±âÁ¸ ¹æ¹ý´ë·Î ¾µ ¼ö ÀÖ´Ù´Â Á¡ÀÌ Ã¹ ¹ø° ÀåÁ¡ÀÌ°í C++ ÄÄÆÄÀÏ·¯ ¾øÀÌ C ÄÄÆÄÀÏ·¯·Îµµ °³¹ßÇÒ ¼ö ÀÖ¾î °³¹ßÅøÀÇ »ç¾çÀÌ Á» ³·¾Æµµ »ó°ü¾ø´Ù´Â °Íµµ Á» ¾ïÁö½º·´±â´Â ÇÏÁö¸¸ ÀåÁ¡À̱â´Â ÇÏ´Ù. ApiEdit9±îÁö µðÆúÆ® Àμö¸¦ Á¦¿ÜÇÏ°í C++ÀÇ ±â´ÉÀº ÀüÇô »ç¿ëÇÏÁö ¾Ê¾Ò´Ù.

±×¸®°í Áß°£ °úÁ¤À» °ÅÄ¡Áö ¾Ê°í À©µµ¿ì ÇÁ·Î½ÃÀú°¡ ¸Þ½ÃÁö¸¦ °ð¹Ù·Î ¹Þ±â ¶§¹®¿¡ ÇÔ¼ö È£Ãâ¼Óµµ°¡ Á» ´õ ºü¸£´Ù. ÇÏÁö¸¸ ÀÌ·± ¸î °¡Áö ÀåÁ¡¿¡µµ ºÒ±¸ÇÏ°í À©µµ¿ì ÄÁÆ®·ÑÀº ºÐ¸íÈ÷ ½Ã´ë¿¡ µÚ¶³¾îÁø ¹æ¹ýÀÌ´Ù. Win32 ȯ°æ¿¡¼­ C ¾ð¾î¸¸ Áö¿øÇÏ´Â ÄÄÆÄÀÏ·¯µµ ¾ø°í ÇÔ¼ö È£Ãâ¼Óµµ°¡ »¡¶ó ºÁ¾ß ÃøÁ¤ ºÒ°¡´ÉÇÑ Á¤µµÀ̱⠶§¹®ÀÌ´Ù. ±×·¡¼­ ApiEdit¸¦ À©µµ¿ì ÄÁÆ®·Ñ·Î ¸¸µå´Â ½Ç½ÀÀº ÇÏÁö ¾Ê°í °£´ÜÇÏ°Ô Á¦ÀÛ ÀýÂ÷¸¸ Á¤¸®Çϵµ·Ï ÇÑ´Ù.

 

 ApiEditTest¶ó´Â À̸§À¸·Î »õ ÇÁ·ÎÁ§Æ®¸¦ ¸¸µç´Ù. ApiEdit.h¿¡ InitApiEdit ÇÔ¼ö ¿øÇü¸¸ ÀÛ¼ºÇÏ°í ApiEdit.cpp¿¡´Â ApiEdit9.cppÀÇ ¸ðµç Äڵ带 º¹»çÇØ ¿Â´Ù. IME ±â´É ±¸ÇöÀ» À§ÇØ imm32.lib¸¦ ¸µÅ©ÇÑ´Ù.

 ApiEdit.cppÀÇ WinMainÀ» ¾ø¾Ø´Ù. ´ë½Å InitApiEdit ÇÔ¼ö¿¡ À©µµ¿ì Ŭ·¡½º µî·Ï Äڵ带 ÀÛ¼ºÇÑ´Ù. À©µµ¿ì Ŭ·¡½º À̸§Àº ApiEdit·Î ÇÏ°í cbWndExtra´Â 4·Î ÁöÁ¤ÇÑ´Ù. À©µµ¿ì ÇÁ·Î½ÃÀúÀÇ À̸§Àº ApiEditProcÀ¸·Î º¯°æÇÑ´Ù.

 SApiEdit ±¸Á¶Ã¼¸¦ ¼±¾ðÇÏ°í ¸ðµç Àü¿ªº¯¼ö¸¦ ÀÌ ±¸Á¶Ã¼ÀÇ ¸â¹ö·Î ¼±¾ðÇÑ´Ù. OnCreate¿¡¼­ ±¸Á¶Ã¼¸¦ ÇÒ´çÇÏ°í ¿©ºÐ ¸Þ¸ð¸®¿¡ ±× Æ÷ÀÎÅ͸¦ ´ëÀÔÇØ µÐ´Ù. OnDestroy¿¡¼­´Â ¹°·Ð ÇØÁ¦ÇØ¾ß ÇÑ´Ù.

 ¸ðµç ÇÔ¼ö¿¡¼­ Àü¿ªº¯¼ö¸¦ ¾×¼¼½ºÇϱâ Àü¿¡ ¿©ºÐ ¸Þ¸ð¸®¿¡ ÀúÀåµÈ ±¸Á¶Ã¼ÀÇ Æ÷ÀÎÅ͸¦ ±¸ÇÑ´Ù. ¾Æ¿¹ ¸ÅÅ©·Î·Î ¸¸µé¾î µÎ´Â °Íµµ ±¦ÂúÀº ¹æ¹ýÀÌ´Ù.

 

SApiEdit *pAe=(SApiEdit *)GetWindowLong(hWnd,0);

 

±×¸®°í ¸ðµç Àü¿ªº¯¼ö ¾Õ¿¡ pAe->¸¦ ºÙ¿©ÁÖ¾î ±¸Á¶Ã¼ÀÇ ¸â¹ö¸¦ ¾×¼¼½ºÇϵµ·Ï ÇÑ´Ù. Áö¿ªº¯¼ö´Â ±×·² ÇÊ¿ä°¡ ¾ø´Ù.

 ¸ðµç ÇÔ¼ö°¡ ¿©ºÐ ¸Þ¸ð¸®¸¦ ¾×¼¼½ºÇÒ ¼ö ÀÖµµ·Ï hWnd Àμö¸¦ Ãß°¡ÇÏ°í ÇÔ¼ö È£Ãâ¹®¿¡¼­ hWnd¸¦ Àü´ÞÇÑ´Ù. ¸ðµç ÇÔ¼öµéÀÌ À©µµ¿ì ÇÚµéÀ» ¹ÞÀ¸¹Ç·Î hWndMain Àü¿ªº¯¼ö´Â ºÒÇÊ¿äÇϸç hWndMainÀ» hWnd·Î º¯°æÇÑ´Ù.

 SetFocus ÇÔ¼ö Ãß°¡ ¹× PostQuitMessage ÇÔ¼ö »èÁ¦ µîÀÇ ¸î °¡Áö ÇÊ¿äÇÑ ¼öÁ¤À» ÇÑ´Ù.

 ApiEditTest.cpp¸¦ ÀÛ¼ºÇÏ¿© ¸ÞÀÎ À©µµ¿ì¸¦ ¸¸µç´Ù. ÇÊ¿äÇÑ ¸¸Å­ À©µµ¿ì ÇÚµéÀ» ¼±¾ðÇÏ°í CreateWindow ÇÔ¼ö·Î ApiEdit ÄÁÆ®·ÑÀ» »ý¼ºÇÏ¿© »ç¿ëÇÑ´Ù.

 

ÀÌ»óÀÇ ÀýÂ÷´ë·Î ApiEdit.h¿Í ApiEdit.cpp¸¦ ÀÛ¼ºÇϸé ApiEdit´Â À©µµ¿ì ÄÁÆ®·ÑÀÌ µÈ´Ù. ¹®¹ýÀûÀ¸·Î ºÐ¸íÈ÷ °¡´ÉÇÑ ¹æ¹ýÀÌ°í ½ÇÁ¦·Î ÀÌ ¹æ¹ý´ë·Î ÄÁÆ®·ÑÀ» ¸¸µé±âµµ ÇÏÁö¸¸ ±âÁ¸ ¼Ò½º¸¦ ÀÌ ¹æ½Ä´ë·Î ¹Ù²Ù±â À§Çؼ­´Â ±²ÀåÈ÷ ¸¹Àº ÀܼÕÁúÀÌ ÇÊ¿äÇÏ´Ù. pAe->¸¦ Àü¿ªº¯¼ö ¾Õ¿¡ ÀÏÀÏÀÌ ºÙ¿©ÁÖ´Â °Íµµ ±ÍÂú°í ¸ðµç ÇÔ¼ö°¡ hWnd¸¦ ¹Þ¾Æ¾ß ÇÏ´Â °Íµµ ½±Áö ¾Ê´Ù. ¼÷·ÃµÈ Á¶±³°¡ Á÷Á¢ ÀÛ¾÷ÇØ º» °á°ú 38ºÐÀ̳ª °É·È´Ù.