¸¶. Ŭ¸³º¸µå ó¸®

SetText ¿Ü¿¡ ¿ÜºÎÀÇ µ¥ÀÌÅ͸¦ Àд ¶Ç ´Ù¸¥ ·çƾÀº Ŭ¸³º¸µå¿¡¼­ ºÙ¿©³Ö±â¸¦ ÇÒ ¶§ÀÌ´Ù. Ŭ¸³º¸µå¿¡ µ¥ÀÌÅ͸¦ ³ÖÀº ÇÁ·Î±×·¥ÀÌ À¯´ÏÄÚµå Æ÷¸ËÀ¸·Î ¹®ÀÚ¿­À» ³ÖÀ» ¼öµµ Àֱ⠶§¹®¿¡ ºÙ¿©³Ö±â Àü¿¡ ³»ºÎ Æ÷¸Ë°ú ȣȯµÇ´ÂÁö Á¡°ËÇغ¸°í ȣȯµÇÁö ¾Ê´Â´Ù¸é ¸ÕÀú º¯È¯ÇÑ ÈÄ ºÙ¿©³Ö¾î¾ß ÇÑ´Ù. OnCommandÀÇ IDM_AE_PASTEÀÇ Äڵ带 ´ÙÀ½°ú °°ÀÌ ¼öÁ¤ÇÑ´Ù.

 

void CApiEdit::OnCommand(HWND hWnd, int id, HWND hwndCtl, UINT codeNotify)

{

     ....

     case IDM_AE_PASTE:

          BOOL bPrevSel;

        TCHAR *dest;

        int Format;

          if (IsClipboardFormatAvailable(CF_TEXT) && bReadOnly==FALSE && bCapture==FALSE) {

              if (SelStart != SelEnd) {

                   StartUndoGroup();

              }

              bPrevSel=DeleteSelection();

              DeleteSelection();

              OpenClipboard(hWnd);

              hmem=GetClipboardData(CF_TEXT);

              ptr=(TCHAR *)GlobalLock(hmem);

           Format=AnalyzeFormat(ptr, -1);

           if (Format != AE_FORMAT_WIN) {

               ConvertFormat(Format,AE_FORMAT_WIN,ptr,dest);

               Insert(off,dest);

               free(dest);

           } else {

                   Insert(off,ptr);

           }

              if (bPrevSel) {

                   EndUndoGroup();

              }

              GlobalUnlock(hmem);

              CloseClipboard();

              Invalidate(FindParaStart(off));

              off += lstrlen(ptr);

              SetCaret();

          }

          return;

 

Ŭ¸³º¸µå¿¡ ÀÖ´Â µ¥ÀÌÅÍ°¡ ÅؽºÆ® Æ÷¸ËÀÓÀ» ¸ÕÀú È®ÀÎÇßÀ¸¹Ç·Î ÀÌÁø Æ÷¸ËÀÎÁö Á¡°ËÇØ º¼ ÇÊ¿ä´Â ¾ø´Ù. Ŭ¸³º¸µåÀÇ µ¥ÀÌÅÍ°¡ À©µµ¿ìÁî Æ÷¸ËÀÌ ¾Æ´Ï¸é º¯È¯ ÈÄ »ðÀÔÇÏ¿´À¸¸ç ´Ù¸¥ ÇÁ·Î±×·¥ÀÌ ¾î¶² Æ÷¸ËÀÇ ÅؽºÆ®¶óµµ Ŭ¸³º¸µå¿¡ ³Ö¾î ³õÀ¸¸é ÆíÁý Æ÷¸ËÀ¸·Î ¹Ù²ã¼­ °¡Á®¿Â´Ù.

ÀÌ»óÀ¸·Î Æ÷¸Ëº¯È¯ ·çƾÀ» ¸ðµÎ ÀÛ¼ºÇß´Ù. ApiEditÀÇ Æ÷¸Ë Áö¿ø Á¤Ã¥ÀÇ ÇÙ½ÉÀº ÆíÁý½Ã¿¡´Â ÇÑ Æ÷¸Ë¸¸ ÀνÄÇ쵂 ¿ÜºÎ ÀÔÃâ·Â½Ã¿¡ ´Ù¸¥ Æ÷¸ËÀ¸·Î º¯È¯À» Çϵµ·Ï ÇÏ´Â °ÍÀÌ´Ù. ´öºÐ¿¡ ÆíÁýÄڵ尡 ´Ü¼øÇØÁö°í ÆíÁý¼Óµµµµ ºü¸£¸ç À¯Áö º¸¼ö°¡ ½±´Ù. Â÷ÈÄ¿¡ Áö¿ø Æ÷¸ËÀ» ´Ã·Á¾ß ÇÒ ¶§ È®ÀåÇϱ⿡ À¯¸®ÇÏ´Ù´Â ÀÌÁ¡µµ ÀÖ´Ù. ÇÏÁö¸¸ Á¤Ã¥ÀÌ ´Ü¼øÇϱ⠶§¹®¿¡ ´ÜÁ¡µµ ¸¹À» ¼ö¹Û¿¡ ¾ø´Ù.

°¡Àå Å« ´ÜÁ¡Àº ³»ºÎ Æ÷¸Ë°ú ´Ù¸¥ ÆÄÀÏÀ» Àд ¼Óµµ°¡ ´À·ÁÁø´Ù´Â Á¡ÀÌ´Ù. º¯È¯À» ÇØ¾ß Á¤·ÄÀ» ÇÒ ¼ö ÀÖ°í Á¤·ÄÀ» ÇØ¾ß È­¸é¿¡ Ãâ·ÂÇÒ ¼ö ÀÖÀ¸´Ï ÆÄÀÏÀÇ ³»¿ëÀ» È®ÀÎÇϴµ¥ ½Ã°£ÀÌ °É¸± ¼ö¹Û¿¡ ¾ø´Ù. ÀÌ ´ÜÁ¡Àº ƯÈ÷ ÅؽºÆ® ºä¾î·Î Å« ÆÄÀÏÀ» È®ÀÎÇÒ ¶§ µÎµå·¯Áö°Ô ³ªÅ¸³­´Ù. ÆíÁý ·çƾÀÇ ºÎ´ãÀÌ ÆÄÀÏ ÀÔÃâ·Â ·çƾÀ¸·Î Àü°¡µÇ¾ú´Ù°í ÇÒ ¼ö ÀÖ´Ù. ¶Ç ´Ù¸¥ ´ÜÁ¡Àº ÀÎÄÚµù ¹æ½Ä¿¡ µû¶ó Ç¥ÇöÇÏÁö ¸øÇÏ´Â ¹®ÀÚ°¡ ÀÖÀ» ¼ö ÀÖ´Ù´Â Á¡ÀÌ´Ù. ANSI Æ÷¸Ë¿¡ ÀÖ´Â ¸ðµç ±ÛÀÚ°¡ À¯´ÏÄڵ忡µµ ÀÖ´Ù°í º¸ÀåÇÒ ¼ö ¾øÀ¸¸ç ¹Ý´ëµµ ¸¶Âù°¡Áö´Ù.

ApiEdit°¡ ÀÌ·± Á¤Ã¥À» ä¿ëÇÏ°Ô µÈ ÀÌÀ¯´Â ¼ÖÁ÷È÷ ¸»Çؼ­ óÀ½ºÎÅÍ Æ÷¸Ëº¯È¯À» °í·ÁÇÏÁö ¸øÇ߱⠶§¹®ÀÌ´Ù. ¸¸¾à ÃÖÃÊ ±âȹ½Ã¿¡ ÀÌ ±â´ÉÀ» °í·ÁÇß´Ù¸é ¸ðµç ÆíÁýÄڵ忡¼­ Æ÷¸Ë¿¡ µû¶ó ´Ù¸¥ 󸮸¦ Çϵµ·Ï ÇßÀ» °ÍÀ̸ç Áö±ÝÀÇ ¸ð¾ç°ú´Â ¸¹ÀÌ ´Þ¶óÁ³À» °ÍÀÌ´Ù. ApiEdit°¡ Áö±Ý äÅÃÇÏ°í ÀÖ´Â Á¤Ã¥ÀÌ ºÐ¸í ÃÖ»óÀÇ Á¤Ã¥ÀÌ ¾Æ´Ï¶ó´Â °ÍÀº ºÐ¸íÇÑ °Í °°°í ´ÙÀ½ ¹öÀü¿¡¼­´Â ÀÌ Á¤Ã¥¿¡ ´ëÇØ ´Ù½Ã ÇÑ ¹ø °ËÅ並 ÇØ º¼ »ý°¢ÀÌ´Ù.