¶ó. ´ÜÃàÅ°

Ŭ¸³º¸µå °ü·Ã ¸í·ÉÀº ÅؽºÆ® ÆíÁýÁß¿¡ ¾ÆÁÖ ÀÚÁÖ »ç¿ëµÇ´Â ±â´ÉÀε¥ ÀÏÀÏÀÌ Æ˾÷¸Þ´º¸¦ ¼±ÅÃÇÏ´Â °ÍÀº ¹«Ã´ ¹ø°Å·Î¿î ÀÏÀÌ´Ù. ±×·¡¼­ ÆíÁýÁß¿¡ °ð¹Ù·Î Ŭ¸³º¸µå ¾×¼ÇÀ» ÇÒ ¼ö ÀÖµµ·Ï ´ÜÃàÅ°¸¦ Á¦°øÇϴµ¥ Ŭ¸³º¸µå °ü·Ã ¸í·ÉÀÇ ´ÜÃàÅ°´Â Åë»ó <Ctrl+C>(º¹»ç), <Ctrl+X>(À߶󳻱â), <Ctrl+V>(ºÙ¿©³Ö±â), <Ctrl+A>(¸ðµÎ ¼±ÅÃ)·Î Á¤ÀÇÇÑ´Ù. ¸ðµç ÆíÁý±âµéÀÌ ÀÌ ´ÜÃàÅ°¸¦ Ŭ¸³º¸µå¿ëÀ¸·Î Á¤ÀÇÇÏ°í ÀÖÀ¸¸ç ¶ÇÇÑ »ç¿ëÀڵ鵵 ÀÌ ´ÜÃàÅ°¿¡ Àͼ÷ÇϹǷΠ±×´ë·Î Àû¿ëÇϵµ·Ï ÇÏÀÚ.

´ÜÃàÅ°¶ó¸é ¾×¼¿·¯·¹ÀÌÅ͸¦ ¸¸µé¾î µÎ¸é Æí¸®ÇÏ°ÚÁö¸¸ ApiEdit´Â ÄÁÆ®·ÑÀ̱⠶§¹®¿¡ Á÷Á¢ ¾×¼¿·¯·¹ÀÌÅ͸¦ ¾²±â°¡ ¾î·Æ´Ù. ±×·¡¼­ OnChar¿¡¼­ ´ÜÃàÅ°¸¦ ÀԷ¹޾ÒÀ» ¶§ ÇØ´ç ¸í·ÉÀ» ¼öÇàÇϵµ·Ï ÇÏ¿´´Ù.

 

void OnChar(HWND hWnd, TCHAR ch, int cRepeat)

{

     TCHAR szChar[3];

     int i;

 

    if (ch == 1) {

        SendMessage(hWnd,WM_COMMAND,MAKEWPARAM(IDM_AE_SELALL,0),0);

        return;

    }

    if (ch == 3) {

        SendMessage(hWnd,WM_COMMAND,MAKEWPARAM(IDM_AE_COPY,0),0);

        return;

    }

    if (ch == 22) {

        SendMessage(hWnd,WM_COMMAND,MAKEWPARAM(IDM_AE_PASTE,0),0);

        return;

    }

    if (ch == 24) {

        SendMessage(hWnd,WM_COMMAND,MAKEWPARAM(IDM_AE_CUT,0),0);

        return;

    }

 

     if ((ch < ¡® ¡® && ch != ¡®\r¡¯ && ch != ¡®\t¡¯) || ch==127)

          return;

 

<Ctrl+C>ÀÇ ¹®ÀÚÄڵ尡 3¹øÀ̹ǷΠÀÌ Äڵ尡 ÀԷµǾúÀ» ¶§ IDM_AE_COPY ¸Þ½ÃÁö¸¦ º¸³»¸é µÈ´Ù. ÇöÀç ÀԷ¸ðµå°¡ ÇѱÛÀÌ´õ¶óµµ <Ctrl+C>´Â Ç×»ó 3¹ø ¹®ÀÚ¸¦ º¸³»¹Ç·Î ÀÌ ÄÚµå´Â ¾×¼¿·¯·¹ÀÌÅÍ ´ë½Å »ç¿ëÇصµ ÀüÇô ¹«¸®°¡ ¾ø´Ù.

Ŭ¸³º¸µå °ü·Ã ´ÜÃàÅ°´Â ÀÌ¿Ü¿¡ <Ctrl+Ins>, <Shift+Ins>, <Ctrl+Del>Å°°¡ ÀÖÀ¸¸ç ÀÌ Å°µµ ÀϹÝÀûÀ¸·Î ¸¹ÀÌ »ç¿ëµÈ´Ù. ÀÌ Å°¿¡ ´ëÇؼ­µµ ´ÜÃàÅ°¸¦ Á¤ÀÇÇϵµ·Ï ÇÏÀÚ. VK_DELETE, VK_BACKÀº ¼öÁ¤ÇÏ°í VK_INSERT´Â »õ·Î Ãß°¡ÇÏ¿´´Ù.

 

     case VK_DELETE:

        if (bShift) {

            SendMessage(hWnd,WM_COMMAND,MAKEWPARAM(IDM_AE_CUT,0),0);

            return;

        }

          if (DeleteSelection()==FALSE) {

               if (IsDBCS(off)) {

                   Delete(off, 2);

               } else {

                   Delete(off, 1);

               }

          }

          InvalidateRect(hWnd,NULL,TRUE);

          SetCaret();

          return;

     case VK_BACK:

          if ((off==0 && SelStart==SelEnd) || (bShift && bControl))

               return;

 

          if (DeleteSelection()==FALSE) {

               if (bControl) {

                   OldOff=off;

                   off=GetPrevWord(OldOff);

                   Delete(off,OldOff-off);

               } else {

                   off=GetPrevOff(off);

                   if (IsDBCS(off)) {

                        Delete(off, 2);

                   } else {

                        Delete(off, 1);

                   }

               }

          }

          InvalidateRect(hWnd,NULL,TRUE);

          SetCaret();

          return;

     case VK_INSERT:

          if (bShift) {

               SendMessage(hWnd,WM_COMMAND,MAKEWPARAM(IDM_AE_PASTE,0),0);

          } else if (bControl) {

               SendMessage(hWnd,WM_COMMAND,MAKEWPARAM(IDM_AE_COPY,0),0);

          }

          return;

 

<Shift>Å°¿Í <Del>Å°¸¦ °°ÀÌ ´©¸£¸é ¹®ÀÚ¸¦ Áö¿ì´Â ´ë½Å IDM_AE_CUT ¸Þ½ÃÁö¸¦ º¸³» À߶󳻱⸦ Çϵµ·Ï ÇÏ¿´´Ù. VK_DELETE°¡ ÀÌ·± ½ÄÀ¸·Î ±â´ÉÀÌ ¼öÁ¤µÊÀ¸·Î Çؼ­ ÀÌ Å°ÀÇ ±â´ÉÀ» ºô·Á¾²°í ÀÖ´Â VK_BACKÀÇ Äڵ尡 ºÒ°¡ÇÇÇÏ°Ô ¿µÇâÀ» ¹Þ°Ô µÇ´Âµ¥ ÀÌ »óÅ¿¡¼­ <Shift+BS>¸¦ ´©¸£¸é À̰͵µ À߶󳻱Ⱑ µÇ¾î ¹ö¸± °ÍÀÌ´Ù. ¾î·µç »èÁ¦´Â µÇ°ÚÁö¸¸ Ŭ¸³º¸µå¿¡ µé¾î ÀÖ´Â ³»¿ëÀÌ Æı«µÈ´Ù´Â ¹®Á¦Á¡ÀÌ ÀÖ´Ù.

±×·¡¼­ <BS>´Â ´õ ÀÌ»ó VK_DELETEÀÇ Äڵ带 ºô·Á ¾²Áö ¸øÇÏ°Ô µÇ¾ú°í ÀڽŸ¸ÀÇ »èÁ¦ Äڵ带 °¡Áö°Ô µÇ¾ú´Ù. ¼±Åÿµ¿ªÀÌ ÀÖ´Â »óÅ¿¡¼­´Â ¼±Åÿµ¿ª¸¸ »èÁ¦Çϸç <Ctrl+BS>´Â ¾Õ ´Ü¾îÀÇ ¼±µÎ±îÁö »èÁ¦ÇÑ´Ù. <Shift>Å°°¡ ´­·¯Á³´ÂÁö´Â Ưº°È÷ Á¡°ËÇÏÁö ¾Ê¾ÒÀ¸¹Ç·Î <Shift+BS>´Â <BS>¿Í µ¿ÀÏÇϸç <Ctrl+Shift+BS>´Â ¾Æ¹« µ¿ÀÛµµ ÇÏÁö ¾Êµµ·Ï ÇÏ¿´´Ù. ÇöÀç À§Ä¡°¡ ¹®¼­ÀÇ ¼±µÎÀÌ¸é ¾ÕÂÊÀ¸·Î »èÁ¦ÇÒ ¼ö ¾øÀ¸¹Ç·Î ±×³É ¸®ÅÏÇ쵂 ´Ü ¼±Åÿµ¿ªÀÌ ÀÖÀ¸¸é »èÁ¦ÇÒ ¼ö ÀÖµµ·Ï ÇÏ¿´´Ù.

VK_INSERTÅ°´Â °íÀ¯ÀÇ ±â´ÉÀº ¾ø°í ´ÜÃàÅ°¸¸ Á¦°øÇÑ´Ù. <Ctrl+Ins>´Â º¹»ç ¸í·É°ú µ¿ÀÏÇϸç <Shift+Ins>´Â ºÙ¿©³Ö±â ¸í·É°ú µ¿ÀÏÇÏ´Ù. ´­·¯Áø Á¶ÇÕÅ°¿¡ µû¶ó ¸Þ½ÃÁö¸¸ ¹Ù²ã¼­ ´Ù½Ã º¸³»¸é µÈ´Ù. ÀÌ ´ÜÃàÅ°µµ ÀϹÝÀûÀ¸·Î ¸¹ÀÌ »ç¿ëµÇ¹Ç·Î °°ÀÌ Áö¿øÇÏ´Â °ÍÀÌ ÁÁ´Ù.

ÀÌ»ó ¿©±â±îÁö ¸¶¿ì½º¿Í Å°º¸µå·Î ¼±Åÿµ¿ªÀ» ¸¸µå´Â ½Ç½ÀÀ» Çߴµ¥ ¿¹¹®À» ª°Ô ³Ö¾úÀ½¿¡µµ ºÒ±¸ÇÏ°í ³Ê¹« ´À·Á¼­ Å×½ºÆ®Çغ¸±â°¡ ¹«Ã´ ¾î·Á¿üÀ» °ÍÀÌ´Ù. ´ÙÀ½ Àå¿¡¼­´Â ±â´É Ãß°¡¾øÀÌ ¼Óµµ¸¦ °³¼±Çغ¸°í ÇÁ·ÎÁ§Æ®ÀÇ Àüü Äڵ带 ÇÑ ¹ø Á¤¸®Çغ¸µµ·Ï ÇÏÀÚ.