´Ù. ¸¶Áø¿¡¼­ÀÇ ¸¶¿ì½º ó¸®

¸¶Áø ¿µ¿ªÀº ºÏ¸¶Å©³ª ÁÙ¹øÈ£¸¦ º¸¿©Áֱ⵵ ÇÏÁö¸¸ ¸¶¿ì½º ¾×¼ÇÀ» À§ÇÑ Æ¯º° ±¸¿ªÀ̱⵵ ÇÏ´Ù. ÀÌ ¿µ¿ª¿¡¼­ÀÇ ¸¶¿ì½ºµ¿ÀÛÀº Æ÷¸ËÆÿµ¿ª¿¡¼­ÀÇ ±×°Í°ú´Â ´Ù¸¥ Àǹ̷ΠÇؼ®µÇ¾î ´Ù¾çÇÑ ¼±Åà µ¿ÀÛÀ» °¡´ÉÇÏ°Ô ÇÑ´Ù. ApiEdit´Â ¸¶Áø¿µ¿ª¿¡¼­ÀÇ ¸¶¿ì½ºµ¿ÀÛÀ» ´ÙÀ½°ú °°ÀÌ Ã³¸®ÇÑ´Ù. ¸¶Áø¿¡¼­ÀÇ ¸¶¿ì½ºµ¿ÀÛÀº ÆíÁý±â¸¶´Ù ´Ù¸£°Ô Á¤ÀǵǸç ÆíÁý±âÀÇ °íÀ¯ÇÑ Á¤Ã¥ Áß ÇϳªÀÌ´Ù.

 

µ¿ÀÛ

ó¸®

´©¸§

ÇÑ ÁÙÀ» ¼±ÅÃÇÑ´Ù.

µå·¡±×

ÇÑ ÁÙ ¸ðµå·Î ¿©·¯ ÁÙÀ» ¼±ÅÃÇÑ´Ù.

´õºíŬ¸¯

¹®´ÜÀ» ¼±ÅÃÇÑ´Ù.

<Ctrl> Ŭ¸¯

¹®¼­ Àüü¸¦ ¼±ÅÃÇÑ´Ù.

<Shift> Ŭ¸¯

ij·µÀÌ ÀÖ´Â ÁÙ¿¡¼­ ÇöÀç ÁÙ±îÁö ¼±ÅÃÇÑ´Ù.

 

ÀÌ ¿µ¿ªÀ» Àß È°¿ëÇÏ¸é ¼±ÅÃÀ» ÈξÀ ´õ È¿À²ÀûÀ¸·Î ÇÒ ¼ö ÀÖÀ¸¸ç µû¶ó¼­ ÆíÁý¼Óµµ¸¦ Çâ»ó½Ãų ¼ö ÀÖ´Ù. ¿©·¯ °¡Áö ÀÌÁ¡ÀÌ Àֱ⠶§¹®¿¡ ´ëºÎºÐÀÇ ÆíÁý±âµéÀÌ ¸¶Áø¿¡¼­ÀÇ ¸¶¿ì½ºÃ³¸®¸¦ Áö¿øÇϴµ¥ ¾î¶² ÆíÁý±âµéÀº Æ®¸®ÇÃŬ¸¯À̳ª ´õºíŬ¸¯ µå·¡±× °°Àº º¹ÀâÇÑ µ¿ÀÛ¿¡ ´ëÇؼ­µµ Áö¿øÇÏ°í ÀÖ´Ù. ¸¶Áø¿¡¼­ÀÇ ¼±ÅÃÀº ÁÙ´ÜÀ§·Î ÀÌ·ç¾îÁö´Âµ¥ ÀÏ¹Ý ¼±Åðú´Â ¸ðµå°¡ ´Ù¸£°í Äڵ忡¼­µµ ¸ðµå¿¡ µû¶ó ¼±Åÿµ¿ªÀ» È®ÀåÇÏ´Â ¹æ¹ýÀÌ ´Ù¸£±â ¶§¹®¿¡ ¼±Åøðµå ±¸ºÐÀ» À§ÇÑ Àü¿ªº¯¼ö°¡ ÇÊ¿äÇÏ´Ù.

 

BOOL bSelLine;

int SelStartLine;

 

BOOL OnCreate(HWND hWnd, LPCREATESTRUCT lpCreateStruct)

{

     ....

     bSelLine=FALSE;

     SelStartLine=0;

 

bSelLineÀº ÇöÀç ¼±Åøðµå°¡ ÁÙ´ÜÀ§ ¸ðµå¶ó´Â °ÍÀ» ³ªÅ¸³»´Â »óÅ°ªÀ̸ç SelStartLineÀº ¼±ÅÃÀ» ½ÃÀÛÇÑ ÁÙÀÇ ¹øÈ£¸¦ °¡Áø´Ù. OnCreate¿¡¼­ µÎ º¯¼ö¸¦ FALSE, 0À¸·Î ÃʱâÈ­Çϵµ·Ï ÇÑ´Ù. ´ÙÀ½ ÇÔ¼ö´Â ÁÙ´ÜÀ§ ¼±ÅÃÀ» À§ÇÑ µµ¿ì¹Ì ÇÔ¼öÀÌ´Ù.

 

int IncludeEnter(int nPos)

{

     if (buf[nPos]==¡®\r¡¯) {

          return nPos+2;

     } else {

          return nPos;

     }

}

 

nPos À§Ä¡ÀÇ ¹®ÀÚ°¡ °³ÇàÄÚµåÀ̸é ÀÌ Äڵ带 Æ÷ÇÔ½ÃŲ´Ù. ÁÙ´ÜÀ§ ¼±ÅÃÀ» ÇÒ ¶§´Â ÁÙ ³¡¿¡ ÀÖ´Â °³ÇàÄÚµå±îÁö °°ÀÌ ¼±ÅÃÇØ¾ß ¹®´ÜÀÌ Á¦´ë·Î º¹»çµÈ´Ù. ¹°·Ð ÀÚµ¿°³ÇàµÈ ÁÙÀÇ ³¡À̶ó¸é °³ÇàÄڵ尡 ¾øÀ¸¹Ç·Î ¹«½ÃÇÑ´Ù. ÀÌ ÇÔ¼ö´Â ÁÙ´ÜÀ§ ¼±ÅÃ󸮿¡ °øÅëÀûÀ¸·Î »ç¿ëµÈ´Ù.

¸¶Áø ¿µ¿ª¿¡¼­ÀÇ ¸¶¿ì½ºÃ³¸®´Â ¸ðµÎ ¸¶¿ì½º ¸Þ½ÃÁö ó¸® ·çƾ¿¡ ÀÛ¼ºµÇ´Âµ¥ ´ëºÎºÐ OnLButtonDown¿¡¼­ ó¸®ÇÑ´Ù. ¸¹Àº Äڵ尡 Ãß°¡µÇ¹Ç·Î ±â´Éº°·Î ¾î¶² Äڵ尡 Ãß°¡µÇ´ÂÁö¸¦ º¸±â ¾î·Á¿ì¹Ç·Î ¿Ï¼ºµÈ °á°ú¸¦ º¸°í ºÐ¼®ÇÏÀÚ.

 

void OnLButtonDown(HWND hWnd, BOOL fDoubleClick, int x, int y, UINT keyFlags)

{

     int toff;

     BOOL bShift, bControl;

    int r,c;

    int nr;

    int SelFirst, SelSecond;

 

     bShift=((GetKeyState(VK_SHIFT) & 0x8000) != 0);

     bControl=((GetKeyState(VK_CONTROL) & 0x8000) != 0);

 

    if (x < MarginWidth) {

        toff=GetOffFromXY(x+xPos,y+yPos);

        GetRCFromOff(toff,r,c);

        if (fDoubleClick) {

           while (pLine[r].nLine!=0) r--;

           for (nr=r+1;;nr++) {

               if (nr == TotalLine || pLine[nr].nLine == 0) {

                   break;

               }

           }

           nr--;

 

           SelStart=pLine[r].Start;

           off=SelEnd=IncludeEnter(pLine[nr].End);

           SetCaret();

           Invalidate(-1);

           return;

        }

 

        if (bControl) {

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

           return;

        }

 

        if (bShift) {

           SelFirst=min(SelStart,SelEnd);

           SelSecond=max(SelStart,SelEnd);

           if (SelStart == SelEnd) {

               GetRCFromOff(off,nr,c);

           } else {

               if (toff > SelFirst) {

                   GetRCFromOff(SelFirst,nr,c);

               } else {

                   GetRCFromOff(SelSecond,nr,c);

               }

           }

           SelStartLine=nr;

 

           if (r >= SelStartLine) {

               SelStart=pLine[SelStartLine].Start;

               off=SelEnd=IncludeEnter(pLine[r].End);

           } else {

               SelStart=pLine[SelStartLine].End;

               off=SelEnd=pLine[r].Start;

           }

        } else {

           SelStart=pLine[r].Start;;

           off=SelEnd=IncludeEnter(pLine[r].End);

           SelStartLine=r;

        }

        SetCaret();

        Invalidate(-1);

        bSelLine=TRUE;

        SetCapture(hWnd);

        bCapture=TRUE;

        return;

    }

 

     if (fDoubleClick) {

     ==== ÀÌÇÏ »ý·« ====

 

void OnMouseMove(HWND hWnd, int x, int y, UINT keyFlags)

{

     BOOL bInstTimer;

     int r,c;

     int OldOff;

    int toff;

 

     if (bCapture == FALSE) {

          return;

     }

 

     OldOff=off;

    if (bSelLine) {

        toff=GetOffFromXY(x+xPos,y+yPos);

        GetRCFromOff(toff,r,c);

 

        if (r >= SelStartLine) {

           SelStart=pLine[SelStartLine].Start;

           off=SelEnd=IncludeEnter(pLine[r].End);

        } else {

           SelStart=pLine[SelStartLine].End;

           off=SelEnd=pLine[r].Start;

        }

    } else {

          off=SelEnd=GetOffFromXY(x+xPos,y+yPos);

     }

     SetCaret();

     Invalidate(min(OldOff,off),max(OldOff,off));

 

     bInstTimer=FALSE;

     ==== ÀÌÇÏ »ý·« ====

 

void OnLButtonUp(HWND hWnd, int x, int y, UINT keyFlags)

{

     bCapture=FALSE;

    bSelLine=FALSE;

     ReleaseCapture();

     KillTimer(hWnd,1);

}

 

OnLButtonDown ÇÔ¼öÀÇ ¼±µÎ¿¡ if (x < MarginWidth) { Á¶°Ç¹®ÀÌ Àִµ¥ ÀÌ Á¶°Ç¹® ¾ÈÀÌ ¸¶Áø¿¡¼­ÀÇ ¸¶¿ì½ºÃ³¸®¸¦ ´ã´çÇÏ´Â ÄÚµåÀÌ´Ù. ¸¶ÁøÀÌ ¼û°ÜÁ® ÀÖ´Â »óÅÂ(MarginWidth == 0)¶ó¸é ÀÌ ÄÚµåµéÀº ÀüÇô ½ÇÇàµÇÁö ¾ÊÀ» °ÍÀÌ´Ù. ½¬¿î ¾×¼ÇºÎÅÍ ºÐ¼®À» Çغ¸µµ·Ï ÇÏÀÚ.

´õºíŬ¸¯

¸¶Áø¿¡¼­ÀÇ ´õºíŬ¸¯Àº Ŭ¸¯ÇÑ ÁÙÀÌ ¼ÓÇØ ÀÖ´Â ¹®´ÜÀ» ¼±ÅÃÇÏ´Â °ÍÀÌ´Ù. toff¿¡ Ŭ¸¯ÇÑ °÷ÀÇ ¿ÀÇÁ¼ÂÀ» Á¶»çÇÏ°í ¿ÀÇÁ¼ÂÀ¸·ÎºÎÅÍ ÇöÀç ÁÙÀ» ±¸ÇØ r¿¡ ´ëÀÔÇÑ´Ù. ÀÌ ÁÙÀÌ ¼ÓÇÑ ¹®´ÜÀÇ Ã¹ ÁÙ°ú ³¡ÁÙÀ» ã¾Æ ¼±ÅÃÇÏ¸é µÈ´Ù. °¢ ¹®´ÜÀÇ Ã¹ ÁÙÀº pLine ¹è¿­ÀÇ nLine ¸â¹ö°¡ 0ÀÎ ÁÙÀ» ãÀ¸¸é µÇ¸ç ¹®´ÜÀÇ ¹üÀ§´Â ´ÙÀ½ ¼ø¼­´ë·Î ±¸ÇÒ ¼ö ÀÖ´Ù.

´õºíŬ¸¯ÇÑ ÁÙ¿¡¼­ºÎÅÍ À§·Î ¿Ã¶ó°¡¸é¼­ nLineÀÌ 0ÀÎ ÁÙÀ» ã´Âµ¥ ¿©±â°¡ ¹®´ÜÀÇ ¼±µÎ ÁÙÀÌ´Ù. À§ÂÊÀ¸·Î nLineÀÌ 0ÀÎ ÁÙÀº ¹Ýµå½Ã ÀÖÀ¸¹Ç·Î º°µµÀÇ ¿¹¿Ü 󸮴 ÇÊ¿ä ¾øÀ¸¸ç ´Ü¼øÇÑ while¹®À¸·Î ¼±µÎ¸¦ ãÀ» ¼ö ÀÖ´Ù.

¼±µÎ¸¦ ãÀº ÈÄ ¹Ù·Î ¾Æ·¡ÁÙºÎÅÍ ´Ù½Ã nLineÀÌ 0ÀÎ ÁÙÀ» ãÀ¸¸é ´ÙÀ½ ¹®´ÜÀÇ ¼±µÎ°¡ µÈ´Ù. ´ÙÀ½ ¹®´ÜÀÇ ¼±µÎ¿¡¼­ ÇÑ ÁÙ¸¸ À§·Î ¿Ã¶ó°¡¸é ¹Ù·Î ¿©±â°¡ ´õºíŬ¸¯ÇÑ ¹®´ÜÀÇ ¸¶Áö¸· ÁÙÀÌ µÇ¸ç nr¿¡ ÀÌ ÁÙ¹øÈ£°¡ ±â·ÏµÈ´Ù. À̶§ ´õºíŬ¸¯ÇÑ ¹®´ÜÀÌ ¹®¼­ÀÇ ¸¶Áö¸· ¹®´ÜÀ̶ó¸é ´ÙÀ½ ¹®´ÜÀÌ ¾øÀ¸¹Ç·Î ¿¹¿Ü 󸮰¡ ÇÊ¿äÇÏ´Ù.

±×·¡¼­ nLine==0 Á¶°Ç ¿Ü¿¡µµ TotalLine°ú °°Àº ÁÙ¹øÈ£ÀÎÁöµµ Á¡°ËÇÏ°í ÀÖ´Ù. Nr ÁÙÀÌ TotalLineÀÌ µÇ¾ú´Ù´Â °ÍÀº ¹®¼­ÀÇ ¸¶Áö¸· ÁÙ¿¡ µµ´ÞÇß´Ù´Â ¶æÀÌ ¾Æ´Ï¶ó ÀÌ¹Ì ¹®¼­ ³¡À» ÃÊ°úÇß´Ù´Â ¶æÀ̸ç ÀÌ ½ÃÁ¡¿¡¼­ ÇÑ ÁÙ À§·Î ¿Ã¶ó°¡¸é ¹®¼­ÀÇ ³¡ÀÓ°ú µ¿½Ã¿¡ ¸¶Áö¸· ¹®´ÜÀÇ ³¡À» Á¦´ë·Î ã°Ô µÈ´Ù. ¹®¼­ÀÇ ¸¶Áö¸· ÁÙÀº TotalLine-1Àε¥ ÀÌ °ª°ú ºñ±³Çؼ­´Â ¾ÈµÇ¸ç ¹Ýµå½Ã ÃÊ°ú°ªÀÎ TotalLine°ú °ð¹Ù·Î ºñ±³ÇØ¾ß nr--¿¡ ÀÇÇØ ¹®´Ü ³¡À» ãÀ» ¼ö ÀÖ´Ù.

¹®´ÜÀÇ Ã³À½ ÁÙ°ú ³¡ ÁÙÀ» ã¾ÒÀ¸¸é ¼±Åÿµ¿ªÀ» ¸¸µå´Â °ÍÀº ¾ÆÁÖ ½±´Ù. ù ÁÙÀÇ Ã³À½ ¿ÀÇÁ¼ÂÀÌ SelStart°¡ µÇ°í ¸¶Áö¸· ÁÙÀÇ ³¡ÀÌ SelEnd°¡ µÈ´Ù. À̶§ ¹®´Ü ¸¶Áö¸·¿¡ ÀÖ´Â ¿£ÅÍÄڵ嵵 ¹Ýµå½Ã Æ÷ÇÔ½ÃÄÑ¾ß ¿ÏÀüÇÑ ¹®´ÜÀ» ¼±ÅÃÇÏ°Ô µÇ¹Ç·Î SelEnd´Â IncludeEnter ÇÔ¼ö°¡ ¸®ÅÏÇÏ´Â ¿ÀÇÁ¼ÂÀ» ¹Þ¾Æ¾ß ÇÑ´Ù. ´ÙÀ½ ±×¸²À» º¸ÀÚ.

¹®´ÜÀ» º¹»çÇÏ¿© ´Ù¸¥ ¹®´Ü Áß°£¿¡ ºÙ¿©³Ö±â¸¦ ÇÏ¿´´Ù. À̶§ ¹®´Ü ³¡¿¡ ÀÖ´Â °³ÇàÄÚµå±îÁö Æ÷ÇÔÇؼ­ º¹»ç¸¦ Çß´Ù¸é ¿ÞÂÊ ±×¸²Ã³·³ µÎ ¹®´Ü »çÀÌ¿¡ º¹»çµÈ ¹®´ÜÀÌ ÀÚ¿¬½º·´°Ô »ðÀԵȴÙ. ÇÏÁö¸¸ °³ÇàÄڵ带 »©°í ¹®´ÜÀÇ ÅؽºÆ®¸¸ º¹»çÇß´Ù¸é ¿À¸¥ÂÊ ±×¸²Ã³·³ ºÙ¿©³Ö±â ÇÑ À§Ä¡ÀÇ ¹®´Ü°ú º¹»çµÈ ¹®´ÜÀÌ ÇÕÃÄÁø´Ù. ÀÌ·¸°Ô µÇ¸é »ç¿ëÀÚ´Â <Enter>Å°¸¦ ÇÑ ¹ø ´õ ÀÔ·ÂÇØ¾ß ÇÏ´Â ºÒÆíÇÔÀÌ ÀÖ´Ù.

¹®´Ü¼±ÅÃÀ̶õ ¹®´ÜÀÇ ÅؽºÆ®¸¸ ¼±ÅÃÇÏ´Â °ÍÀÌ ¾Æ´Ï¶ó ¹®´Ü ÀÚü¸¦ ¼±ÅÃÇÏ´Â °ÍÀ̸ç ÀÌ ¹®´ÜÀ» º¹»çÇÏ¸é ¹®´ÜÀÌ Åë°·Î º¹»çµÇ¾î¾ß ÇÑ´Ù. ¹®´ÜÀÇ Á¤ÀÇ ÀÚü°¡ °³ÇàÄÚµå·Î ±¸ºÐµÈ ÅؽºÆ®ÀÇ ÁýÇÕÀ̹ǷΠ¹®´ÜÀÇ ³¡¿¡ ÀÖ´Â °³ÇàÄڵ嵵 °°ÀÌ º¹»çµÇ¾î¾ß Çϸç ÀÌ Ã³¸®¸¦ ÇÏ´Â ÇÔ¼ö°¡ ¹Ù·Î IncludeEnter ÇÔ¼öÀÌ´Ù.

<Ctrl> Ŭ¸¯

<Ctrl> Ŭ¸¯Àº ¹®¼­¸¦ Åë°·Î ¼±ÅÃÇÏ´Â °ÍÀÌ´Ù. ÀÌ ±â´ÉÀº ½±±âµµ ÇÏÁö¸¸ ÀÌ¹Ì ÀÛ¼ºµÈ Äڵ尡 ÀÖÀ¸¹Ç·Î µû·Î Äڵ带 ÀÛ¼ºÇÒ ÇÊ¿ä°¡ ¾ø´Ù. IDM_AE_SELALL ¸í·ÉÀ» º¸³» Áֱ⸸ Çϸé <Ctrl+A> ´ÜÃàÅ°ÀÇ Äڵ尡 ½ÇÇàµÇ¾î ¹®¼­ Àüü°¡ ¼±ÅõȴÙ.

¸¶Áø¿¡¼­ÀÇ ´õºíŬ¸¯°ú <Ctrl> Ŭ¸¯Àº ±× ÀÚü·Î¼­ ¿Ïº®Çϸç OnLButtonDown¿¡¼­ ¸ðµç 󸮸¦ ´Ù ÇßÀ¸¹Ç·Î ´Ù¸¥ 󸮰¡ ÇÊ¿ä¾ø´Ù. ±×·¡¼­ ó¸® ÈÄ °ð¹Ù·Î ¸®ÅÏÇÏ¿´´Ù. ¹Ý¸é µå·¡±× °°Àº µ¿ÀÛÀº ¸¶¿ì½º À̵¿½Ã¿¡µµ °è¼Ó ó¸®ÇØ¾ß ÇϹǷΠĿ¼­¸¦ ĸóÇÏ´Â Ãß°¡ µ¿ÀÛÀÌ ÇÊ¿äÇÏ´Ù.

ÇÑ ÁÙ ¼±ÅÃ

ÇÑ ÁÙÀ» ¼±ÅÃÇÏ´Â °ÍÀº ¾ÆÁÖ °£´ÜÇÏ´Ù. if (x < MarginWidth) { ºí·ÏÀÇ Ã³À½¿¡¼­ Ŭ¸¯ÇÑ °÷ÀÇ ¿ÀÇÁ¼Â toff¿Í ÁÙ¹øÈ£ rÀº ÀÌ¹Ì Á¶»çÇسõ¾ÒÀ¸¹Ç·Î r ÁÙÀÇ ½ÃÀÛ¿¡¼­ ³¡±îÁö¸¦ ¼±Åÿµ¿ªÀ¸·Î ¸¸µé±â¸¸ ÇÏ¸é µÈ´Ù. ´Ü, ÀÌ °æ¿ìµµ ÁÙ ³¡¿¡ °³ÇàÄڵ尡 ÀÖ´Ù¸é Æ÷ÇÔ½ÃÄÑ¾ß ÇϹǷΠIncludeEnter ÇÔ¼ö°¡ ÇÊ¿äÇÏ´Ù. OnLButtonDown Äڵ尡 ±æ´Ù º¸´Ï ÇÑ ÁÙ ¼±ÅÃÀ» ó¸®ÇÏ´Â ºÎºÐÀÌ ¾îµò°¡ Àß ¾Èº¸ÀÏ ¼öµµ Àִµ¥ Á» Á¤¸®Çؼ­ º¸ÀÌ¸é ´ÙÀ½ ºÎºÐÀÌ´Ù.

 

void OnLButtonDown(HWND hWnd, BOOL fDoubleClick, int x, int y, UINT keyFlags)

{

     ...

     if (x < MarginWidth) {

     ....

          if (bShift) {

              ....

          } else {

           SelStart=pLine[r].Start;;

           off=SelEnd=IncludeEnter(pLine[r].End);

           SelStartLine=r;

          }

          SetCaret();

          Invalidate(-1);

          bSelLine=TRUE;

          SetCapture(hWnd);

          bCapture=TRUE;

          ....

 

x ÁÂÇ¥´Â ¸¶Áø¿µ¿ª ¾ÈÀÌ°í <Shift>Å°´Â ´­·¯ÁöÁö ¾Ê¾ÒÀ» ¶§ÀÇ Äڵ带 º¸¾Æ¶ó. ¾Õ¿¡¼­ ¼³¸íÇÑ´ë·Î SelStart´Â r ÁÙÀÇ Ã³À½ÀÌ°í SelEnd´Â r ÁÙÀÇ ³¡¿¡¼­ IncludeEnter ÇÑ À§Ä¡¸¦ ´ëÀÔÇÏ°í ÀÖ´Ù. º¸´Ù½ÃÇÇ ÇÑ ÁÙÀ» ¼±ÅÃÇÏ´Â ÀÛ¾÷Àº ÀÌ·¸°Ô °£´ÜÇÏ´Ù. ±×·¯³ª ÀÌ ÀÛ¾÷Àº ¿©±â¼­ ³¡³ª´Â °ÍÀÌ ¾Æ´Ï´Ù. ¸¶Áø¿¡¼­ ¸¶¿ì½º¸¦ ´©¸¥ ä·Î µå·¡±×¸¦ ÇÒ ¼öµµ Àֱ⠶§¹®¿¡ ´ÙÀ½ 󸮸¦ À§ÇØ ¾à°£ÀÇ Áغñ¸¦ ÇØ¾ß ÇÑ´Ù.

¸¶Áø¿¡¼­ µå·¡±×ÇÒ ¶§´Â ÁÙ´ÜÀ§·Î¸¸ ¼±ÅÃÀ» ÇØ¾ß ÇÏ°í Æ÷¸ËÆÿµ¿ª¿¡¼­ µå·¡±×ÇÏ´Â °Í°ú´Â µ¿ÀÛÀÌ ´Ù¸£¹Ç·Î ¼±Åøðµå¸¦ ±¸ºÐÇØ¾ß ÇÒ ÇÊ¿ä°¡ ÀÖ´Ù. ±×·¡¼­ bSelLine º¯¼ö¸¦ TRUE·Î ¼³Á¤ÇÏ¿© ÁÙ´ÜÀ§ ¼±Åøðµå·Î ¸¸µé°í ÃÖÃÊ ¼±ÅÃÀ» ½ÃÀÛÇÑ ÁÙ¹øÈ£¸¦ SelStartLine º¯¼ö¿¡ ±â·ÏÇصξú´Ù. ±×¸®°í °è¼Ó ¸¶¿ì½º ¸Þ½ÃÁö¸¦ ¹ÞÀ» ¼ö ÀÖµµ·Ï Ä¿¼­¸¦ ĸóÇß´Ù. ÀÌÈÄÀÇ Ã³¸®´Â OnMouseMove·Î ³Ñ¾î°£´Ù.

 

void OnMouseMove(HWND hWnd, int x, int y, UINT keyFlags)

{

     ....

     OldOff=off;

     if (bSelLine) {

          toff=GetOffFromXY(x+xPos,y+yPos);

          GetRCFromOff(toff,r,c);

 

          if (r >= SelStartLine) {

              SelStart=pLine[SelStartLine].Start;

              off=SelEnd=IncludeEnter(pLine[r].End);

          } else {

              SelStart=IncludeEnter(pLine[SelStartLine].End);

              off=SelEnd=pLine[r].Start;

          }

     } else {

          off=SelEnd=GetOffFromXY(x+xPos,y+yPos);

     }

     ....

 

OnMouseMove¿¡¼­´Â ÁÙ´ÜÀ§ ¼±ÅÃÀÏ ¶§¿Í ÀÏ¹Ý ¼±ÅÃÀÏ ¶§¸¦ bSelLine º¯¼ö°ªÀ¸·Î ±¸ºÐÇϴµ¥ ÀÏ¹Ý ¼±ÅÃÀÏ ¶§´Â else ºí·ÏÀÇ ±âÁ¸ Äڵ尡 ½ÇÇàµÇ°í ÁÙ´ÜÀ§ ¼±ÅÃÀÏ ¶§´Â if (bSelLine) { ºí·ÏÀÇ Äڵ带 ½ÇÇàÇÑ´Ù. ÁÙ´ÜÀ§ ¼±ÅÃÀº ¼±Åà ½ÃÀÛ ÁÙ¿¡¼­ ÇöÀç ¸¶¿ì½º Ä¿¼­°¡ ÀÖ´Â ÁÙ±îÁö ¼±ÅÃÇÏ´Â µ¿ÀÛÀε¥ ¸¶¿ì½º°¡ À§·Î À̵¿ÇÑ °æ¿ì¿Í ¾Æ·¡·Î À̵¿ÇÑ °æ¿ìÀÇ ¼±Åÿµ¿ª °è»êÀÌ ´Þ¶óÁø´Ù.

¸¶¿ì½º°¡ ¾Æ·¡·Î À̵¿ÇßÀ¸¸é ¼±Åà ½ÃÀÛÁÙÀÇ Ã³À½¿¡¼­ À̵¿ÇÑ ÁÙÀÇ ³¡±îÁö¸¦ ¼±ÅÃÇÏ°í ¹Ý´ë·Î ¸¶¿ì½º°¡ À§·Î À̵¿ÇßÀ¸¸é ¼±Åà ½ÃÀÛÁÙÀÇ ³¡¿¡¼­ À̵¿ÇÑ ÁÙÀÇ Ã³À½±îÁö¸¦ ¼±ÅÃÇÑ´Ù. µÎ °æ¿ì ¸ðµÎ ÁÙ ³¡ÀÇ ¿ÀÇÁ¼ÂÀ» ÃëÇÒ ¶§´Â Ç×»ó IncludeEnter ÇÔ¼ö°¡ ÇÊ¿äÇÏ´Ù.

µå·¡±×ÇÑ ¹æÇâ°ú´Â »ó°ü¾øÀÌ SelStartLineÀº Ç×»ó ¼±Åÿµ¿ª¿¡ Æ÷ÇԵǸç SelStart´Â Ç×»ó ¼±ÅÃÀ» ½ÃÀÛÇÑ ÁÙ¿¡ ÀÖ¾î¾ß ÇÑ´Ù. ¹æÇâ¿¡ µû¶ó SelStart°¡ ÁÙÀÇ Ã³À½À̳ª ³¡À¸·Î À̵¿Çϱâ´Â ÇÏÁö¸¸ ¼±Åà ½ÃÀÛ ÁÙÀ» ¹þ¾î³ªÁö´Â ¾ÊÀ¸¸ç µå·¡±×ÇÑ ¹æÇâÀÇ ³¡Àº SelEnd°¡ °¡¸®Å²´Ù. Ä¿¼­°¡ ÃÖÃÊ ¼±ÅÃÀ» ½ÃÀÛÇÑ ÁÙº¸´Ù À§·Î ¿Ã¶ó°¬´Ù°í Çؼ­ SelStart°¡ À­ÁÙÀÇ ¼±µÎ°¡ µÇµµ·Ï Çؼ­´Â ¾ÈµÈ´Ù. ¿Ö³ÄÇÏ¸é ¼±ÅÃÁßÀÇ Ä³·µÀº ºí·ÏÀÌ È®ÀåµÇ°í ÀÖ´Â ¹æÇâÀ» °¡¸®Å°´Â ¿ªÇÒÀ» Çϸç ÀÌ ¹æÇâÀº Ç×»ó SelEnd°¡ µÇ¾î¾ß Çϱ⠶§¹®ÀÌ´Ù.

¸¶¿ì½º·Î ÁÙ´ÜÀ§ ¼±ÅÃÀ» ÇÏ´Ù°¡µµ ¼±Åà ¹æ¹ýÀ» Å°º¸µå·Î ¹Ù²Ü ¼ö Àִµ¥ À̶§ ¼±Åà ȮÀå ¹æÇâÀÌ Ç×»ó Á¦´ë·Î µÇ¾î ÀÖ¾î¾ß ÇÑ´Ù. ¸¶¿ì½º·Î À§·Î ±Ü´Ù°¡ ´Ù½Ã <Shift+Up>Çߴµ¥ ¼±Åÿµ¿ªÀÌ À§·Î È®ÀåµÇÁö ¾Ê°í ¾Æ·¡¿¡¼­ Ãà¼ÒµÇ¾î ¿Ã¶ó¿À¸é ÀÌ»óÇÏÁö ¾Ê°Ú´Â°¡? ÀÌ·± Â÷ÀÌ´Â ¾ÆÁÖ ¹Ì¼¼Çϱ⠶§¹®¿¡ ÇÁ·Î±×·¡¹ÖÀ» ÇÒ ¶§ °í·ÁÇϱ⠾î·ÆÁö¸¸ ½ÇÁ¦·Î ÀÌ ÇÁ·Î±×·¥À» »ç¿ëÇÏ´Â »ç¿ëÀÚµéÀº ´çÀå ¾Ë¾Æç ¼ö ÀÖ´Ù.

ÀÌ Äڵ忡¼­ ¶Ç ÇÑ °¡Áö ÁÖÀÇÇؼ­ º¼ °ÍÀº ¹æÇ⠰˻縦 À§ÇÑ Á¶°Ç¹®ÀÌ´Ù. ÇöÀç Ä¿¼­°¡ ÀÖ´Â ÁÙ r°ú ¼±Åà ½ÃÀÛÁÙÀ» ºñ±³ÇÏ´Â if (r >= SelStartLine) Á¶°Ç¹®¿¡´Â µîÈ£°¡ Æ÷ÇԵǾî ÀÖ´Ù. ÀÌ Á¶°Ç¹®Àº ÃÖÃÊ ¼±ÅÃÀ» ½ÃÀÛÇÑ ÁÙ°ú Áö±Ý Ä¿¼­°¡ ÀÖ´Â ÁÙÀÌ °°À» ¶§´Â Ä¿¼­°¡ ¾Æ·¡ÂÊ¿¡ ÀÖ´Â °Í°ú °°ÀÌ Ãë±ÞÇ϶ó´Â ¶æÀÌ ´ã°Ü ÀÖ´Ù.

ÀÌ·¸°Ô ó¸®Çϸé ÇÑ ÁÙ¸¸ ¼±ÅÃÇÒ ¶§ °¡±ÞÀûÀ̸é SelEnd°¡ SelStartº¸´Ù µÚ¿¡ ÀÖµµ·Ï ÇÔÀ¸·Î½á ÇÑ ÁÙ ¼±ÅÃÀ» ´õ ÀÚ¿¬½º·´°Ô ¸¸µç´Ù. ¸¸¾à ÀÌ µîÈ£°¡ »ý·«µÈ´Ù¸é ¸¶Áø¿¡¼­ ÃÖÃÊ ¸¶¿ì½º¸¦ ´©¸¦ ¶§´Â ij·µÀÌ ÁÙ ³¡¿¡ ÀÖ´Ù°¡µµ °°Àº ÁÙ ³»¿¡¼­ Á¶±ÝÀÌ¶óµµ ¸¶¿ì½º¸¦ ¿òÁ÷À̸é Á٠óÀ½À¸·Î ij·µÀÌ À̵¿ÇÑ´Ù. ¹°·Ð ±×·¡µµ Å« ºÒÆíÇÔÀ̳ª Â÷ÀÌ´Â ¾øÁö¸¸ ¿ØÁö ¾î»öÇÏ´Ù. ÀÌ·± Äڵ带 © ¶§´Â ºÎµîÈ£ Çϳª¸¦ ¼±ÅÃÇÒ ¶§µµ ¸¹Àº »ý°¢ÀÌ ÇÊ¿äÇÏ´Ù.

OnLButtonUp¿¡¼­´Â Ưº°È÷ ´õ ÇÒ ÀÏÀÌ ¾ø°í ÇÑ ÁÙ ¼±Åøðµå¸¦ ³¡³»±â À§ÇØ bSelLineÀ» FALSE·Î ¹Ù²ã ÁÖ¾ú´Ù. bSelLineÀº ¿À·ÎÁö ¸¶¿ì½ºÃ³¸® ÇÔ¼ö°£ÀÇ ¸ðµå ±¸ºÐÀ» À§Çؼ­¸¸ Á¸ÀçÇÏ¸ç ¹öÆ°À» ³õ´Â Áï½Ã FALSE°¡ µÇ¾î¾ß ÇÑ´Ù.

ÁÙ´ÜÀ§ ¼±Åøðµå

¸¶Áø¿¡¼­ÀÇ ÁÙ´ÜÀ§ ¼±ÅÃÀº ¸¶¿ì½ºÃ³¸® ÇÔ¼ö ¼ÂÀÇ ÇÕÀÛÇ°ÀÌ´Ù. OnLButtonDown¿¡¼­´Â ÇÑ ÁÙ ¼±ÅÃÇسõ°í ¸ðµå¸¸ ¹Ù²ã ÁÖ°í µå·¡±× 󸮴 OnMouseMove°¡ ´ã´çÇÏ°í ¸¶Áö¸· µÚÄ¡´Ú°Å¸®´Â OnLButtonUpÀÌ ÇÑ´Ù. ÀÌ ¼¼ ÇÔ¼ö°¡ ÁÙ´ÜÀ§ ¼±ÅÃÀ» À§ÇØ bSelLine, SelStartLine µÎ °³ÀÇ Àü¿ªº¯¼ö¸¦ »ç¿ëÇÏ°í Àִµ¥ ÀÌ Àü¿ªº¯¼ö°¡ °ú¿¬ ²À ÇÊ¿äÇÑ°¡ »ý°¢Çغ¸ÀÚ.

ÁÙ´ÜÀ§ ¼±ÅÃÀ̵ç Æ÷¸ËÆÿµ¿ª¿¡¼­ÀÇ ¼±ÅÃÀÌµç ¾îÂ÷ÇÇ Ä¿¼­´Â ĸóÇØ¾ß ÇÏ°í WM_MOUSEMOVE ¸Þ½ÃÁö´Â ¿¬¼ÓÀûÀ¸·Î Àü´ÞµÈ´Ù. ¶ÇÇÑ OnMouseMove¿¡¼­µµ Ä¿¼­ÀÇ ÇöÀç À§Ä¡¸¦ ¾Ë ¼ö ÀÖÀ¸¹Ç·Î Ä¿¼­°¡ ¸¶Áø¿µ¿ª¿¡ ÀÖ´ÂÁö ¾Æ´ÑÁö¸¦ ¾Ë ¼ö ÀÖ´Ù. ±×·³¿¡µµ ºÒ±¸ÇÏ°í bSelLine ¸ðµå°¡ ÇÊ¿äÇÑ ÀÌÀ¯´Â »ç¶÷ÀÇ ¼Õµ¿ÀÛÀÌ Á¤È®ÇÏÁö ¾Ê±â ¶§¹®ÀÌ´Ù.

ÃÖÃÊ ¸¶Áø¿µ¿ª¿¡¼­ ÁÙ´ÜÀ§ ¼±ÅÃÀ» Çß´Ù¸é ¸¶¿ì½º À̵¿Áß¿¡ Ä¿¼­°¡ Æ÷¸ËÆÿµ¿ªÀ¸·Î µé¾î¿Íµµ ÁÙ´ÜÀ§ ¼±Åà »óŸ¦ °è¼Ó À¯ÁöÇϵµ·Ï ÇÏ´Â °ÍÀÌ ÁÁ´Ù. ¸¶Áø¿µ¿ªÀº Á¼±â ¶§¹®¿¡ ÀÌ ¿µ¿ª¿¡¼­ ¼öÁ÷À¸·Î Á¤È®ÇÏ°Ô ¸¶¿ì½º¸¦ À̵¿½ÃÅ°±â´Â ½±Áö ¾Ê´Ù. ±×·¡¼­ ÃÖÃÊ ¸¶¿ì½º ¹öÆ°À» Ŭ¸¯ÇÑ À§Ä¡°¡ ¸¶Áø¿µ¿ªÀ̾úÀ¸¸é ¹öÆ°À» ³õ±â Àü±îÁö´Â »ç¿ëÀÚ°¡ ÁÙ´ÜÀ§ ¼±ÅÃÀ» ¿øÇÑ´Ù´Â °ÍÀ¸·Î Çؼ®ÇÏ°í ±×´ë·Î µ¿ÀÛÇϱâ À§ÇØ bSelLineÀ̶ó´Â ¸ðµå°¡ ÇÊ¿äÇÑ °ÍÀÌ´Ù.

ÆíÁý±â¿¡ µû¶ó¼­´Â ¸¶Áø¿¡¼­ ÁÙ´ÜÀ§ ¼±ÅÃÀ» ½ÃÀÛÇÏ´õ¶óµµ Æ÷¸ËÆÿµ¿ªÀ¸·Î µé¾î¿À¸é »ç¿ëÀÚ°¡ ÁÙ´ÜÀ§ ¼±ÅÃÀ» Ãë¼ÒÇÑ °ÍÀ¸·Î Çؼ®ÇÏ°í ÀÏ¹Ý ¸ðµå·Î ÀüȯÇϱ⵵ ÇÑ´Ù. ÀÏ´Ü ÀÏ¹Ý ¸ðµå·Î ÀüȯÇÏ¸é ¸¶¿ì½º ¹öÆ°À» ¶¼±â Àü¿¡´Â ´Ù½Ã ÁÙ´ÜÀ§ ¸ðµå·Î °¥ ¼ö ¾ø´Ù. ÁÙ´ÜÀ§ ¼±Åÿ¡ Å« Àǹ̸¦ µÎÁö ¾Ê°í ´Ù¸¸ ¿©·¯ ÁÙÀ» »¡¸® ¼±ÅÃÇϱâ À§ÇÑ ÀÓ½ÃÀûÀÎ ¹æ¹ýÀ¸·Î¸¸ ÁÙ´ÜÀ§ ¼±ÅÃÀ» Á¦°øÇÑ´Ù¸é ÀÌ·± ¹æ½ÄÀÌ ÀûÇÕÇÏ´Ù. ¾î¶² ÆíÁý±â°¡ ±×·±°¡ ÇÏ¸é ¹Ù·Î ºñÁÖ¾ó C++ 6.0ÀÇ ÆíÁý±â°¡ ÀÌ ¹æ½Ä´ë·Î µ¿ÀÛÇÑ´Ù.

¹Ý¸é ¿öµå³ª ±âŸ ¿öµåÇÁ·Î¼¼¼­ ·ùµéÀº ÁÙ´ÜÀ§ ¸ðµå¸¦ öÀúÇÏ°Ô ±¸ºÐÇÑ´Ù. ÁÙ´ÜÀ§ ¸ðµå¸¦ °­Á¦·Î À¯ÁöÇÒ °ÍÀΰ¡ ¾Æ´Ï¸é »ç¿ëÀÚ¿¡°Ô ¸Ã±æ °ÍÀΰ¡´Â ¼±ÅÃÀÇ ¹®Á¦Àε¥ ApiEditó·³ »ç¿ëÀÚ°¡ ´ëÃæ µå·¡±×Çصµ ÃÖÃÊÀÇ ¸í·ÉÀ» Á¸ÁßÇÏ°í ½Í´Ù¸é bSelLineÀÌ ¹Ýµå½Ã ÇÊ¿äÇÏ´Ù.

SelStartLine º¯¼ö´Â ÁÙ´ÜÀ§ ¼±ÅÃÀ» ½ÃÀÛÇÑ ÁÙÀÇ ¹øÈ£Àε¥ ÀÌ Á¤º¸µµ ¹Ýµå½Ã ÇÊ¿äÇÏ´Ù. SelStart´Â ´Ü¼øÇÑ ¿ÀÇÁ¼ÂÀÌ°í ÁÙ´ÜÀ§ ¼±Åøðµå¿¡¼­´Â µå·¡±× ¹æÇâ¿¡ µû¶ó ºí·Ï ½ÃÀÛÀ§Ä¡°¡ °¡º¯ÀûÀ̹ǷΠÁÙ´ÜÀ§ ¼±ÅýÃÀÇ ½ÃÀÛÁ¡À¸·Î ¾²±â¿¡´Â ºÎÀû´çÇÑ´Ù.

µå·¡±×Áß¿¡ ¹æÇâÀÌ ¹Ù²î¸é ÀÌ¹Ì ¼±ÅõǾî ÀÖ´Â ¿ª¹æÇâ ÂÊÀº ¼±ÅÃÀÌ Ãë¼ÒµÇ¾î¾ß ÇÑ´Ù. ¿¹¸¦ µé¾î 3¹ø ÁÙ¿¡¼­ ½ÃÀÛÇؼ­ 5¹ø ÁÙ·Î µå·¡±×Çß´Ù¸é 3~5¹ø ÁÙÀÌ ¼±ÅõǾî ÀÖÀ» °ÍÀÌ´Ù. ÀÌ »óÅ¿¡¼­ Ä¿¼­¸¦ 1¹ø ÁÙ·Î °¡Á®°¡¸é 1~5¹ø ÁÙÀÌ ¼±ÅõǴ °ÍÀÌ ¾Æ´Ï¶ó 1~3¹ø ÁÙ±îÁö¸¸ ¼±Åõǰí 4,5¹ø ÁÙÀº ¼±ÅÃÀÌ Ãë¼ÒµÇ¾î¾ß ÇÑ´Ù. À̶§ Ãë¼ÒÀÇ °æ°è¼±ÀÌ µÇ´Â ÁöÁ¡À» ¹Ù·Î SelStartLine º¯¼ö°¡ °¡Áö°í ÀÖ´Ù.

<Shift> Ŭ¸¯

¸¶Áø¿¡¼­ÀÇ <Shift> Ŭ¸¯Àº ij·µÀÌ ÀÖ´Â ÁÙ¿¡¼­ Ŭ¸¯ÇÑ ÁÙ±îÁö ¼±ÅÃÇÏ´Â ±â´ÉÀ» °¡Áø´Ù. À̶§µµ ÁÙ´ÜÀ§·Î ¼±ÅõǹǷΠij·µ À§Ä¡ÀÇ ¿ÀÇÁ¼ÂÀÌ ½ÃÀÛÁ¡ÀÌ µÇ´Â °ÍÀÌ ¾Æ´Ï¶ó ij·µÀÌ ÀÖ´Â ÁÙÀÇ Ã³À½ÀÌ ½ÃÀÛÁ¡ÀÌ µÈ´Ù. Ŭ¸¯ÇÑ ¹æÇâ¿¡ µû¶ó¼­ ¼±Åÿµ¿ªÀ» °è»êÇÏ´Â ¹æ¹ýÀº OnMouseMove¿Í µ¿ÀÏÇϸç <Shift> Ŭ¸¯ÇÑ ÈÄ¿¡µµ °è¼Ó µå·¡±×ÇÒ ¼ö ÀÖÀ¸¹Ç·Î SelStartLine¿¡´Â ij·µÀÌ ÀÖ´Â ÁÙ¹øÈ£¸¦ ´ëÀÔÇÏ°í bSelLineÀº TRUE·Î ¹Ù²ã¾ß ÇÑ´Ù.

¼±Åÿµ¿ªÀÌ ÀÌ¹Ì ÀÖ´Â »óÅ¿¡¼­ <Shift> Ŭ¸¯ÇÒ ¶§´Â Ŭ¸¯ÇÑ ÁöÁ¡ÀÌ ¼±Åÿµ¿ªº¸´Ù ´õ ¾ÕÀΰ¡ µÚÀΰ¡¿¡ µû¶ó ¼±ÅÃÀÇ ½ÃÀÛÁ¡ÀÌ ´Þ¶óÁø´Ù. ºí·ÏÀÇ ¾Æ·¡ÂÊÀ» Ŭ¸¯Çß´Ù¸é ¼±Åÿµ¿ªÀÇ ¼±µÎºÎÅÍ »õ·Î Ŭ¸¯ÇÑ °÷±îÁö ¼±ÅÃÇÏ°í ¹Ý´ë¶ó¸é ¼±Åÿµ¿ªÀÇ ³¡¿¡¼­ºÎÅÍ »õ·Î Ŭ¸¯ÇÑ °÷±îÁö ¼±ÅÃÇÑ´Ù. Áï, ÀÌ¹Ì ¼±ÅÃµÈ ¿µ¿ªÀº º¸Á¸Çϸ鼭 ÃÖ´ëÇÑ ºí·ÏÀ» È®ÀåÇÑ´Ù. ´Ü, ¼±Åÿµ¿ª ³»ºÎÀÇ ÁÙÀ» Ŭ¸¯ÇÒ ¶§´Â ¾î¿ ¼ö ¾øÀÌ ºí·ÏÀÌ Ãà¼ÒµÈ´Ù.

¼±ÅÃÀÌ ÀÌ¹Ì ÀÖ°í ¸¶Áø¿¡¼­ <Shift> Ŭ¸¯ÇÒ ¶§ÀÇ ºí·Ï °ü¸® Á¤Ã¥¿¡ ´ëÇؼ­µµ °³¹ßÀÚÀÇ ¼±ÅÃÀÌ ÇÊ¿äÇÏ´Ù. ¾î¶² ½ÄÀ¸·Î ºí·ÏÀ» È®Àå ¶Ç´Â Ãà¼ÒÇÒ °ÍÀÎÁö, ±×¶§ÀÇ ¼±Åà ½ÃÀÛÁ¡À» ¾îµð·Î ÀâÀ» °ÍÀÎÁö°¡ ¸ðµÎ °³¹ßÀÚÀÇ ÃëÇâ¿¡ µû¶ó ´Þ¶óÁú °ÍÀÌ¸ç ¿©±â¼­ ³»¸° °áÁ¤¿¡ µû¶ó ÆíÁý±âÀÇ °³¼ºÀÌ °áÁ¤µÇ´Â °ÍÀÌ´Ù.

¾Õ¿¡¼­µµ ¸»ÇßµíÀÌ ApiEdit´Â °¡±ÞÀûÀÌ¸é ºí·ÏÀ» È®ÀåÇÏ´Â ÂÊÀ¸·Î °áÁ¤Çߴµ¥ ÀÌ Á¤Ã¥Àº ÆíÁý±â¸¶´Ù ¾ÆÁÖ µ¶Æ¯Çѵ¥´Ù ¹®Á¦Á¡µµ ¸¹´Ù. ´ëÇ¥ÀûÀ¸·Î ºñÁÖ¾ó C++ 6.0ÀÇ ÆíÁý±âÀÇ ÀÌ Á¤Ã¥À» º¸¸é Á» ÀÌ»óÇÏ´Ù´Â »ý°¢µµ µç´Ù. ´ÙÀ½ ±×¸²À» º¸ÀÚ.

  

5¹ø ÁÙ¿¡¼­ µå·¡±×¸¦ ½ÃÀÛÇؼ­ 4¹ø ÁÙ±îÁö ¼±ÅÃÇÑ »óÅÂÀÌ´Ù. ÀÌ »óÅ¿¡¼­ 3¹ø ÁÙ¿¡¼­ <Shift> Ŭ¸¯Çϸé 6¹ø ÁÙÀÌ °°ÀÌ ¼±ÅõȴÙ. °è¼ÓÇؼ­ 2¹ø ÁÙ¿¡¼­ <Shift> Ŭ¸¯Çϸé 7¹ø ÁÙ±îÁö °°ÀÌ ¼±ÅõȴÙ. ¹ö±×¶ó°í ÇÑ´Ù¸é ±×·² ¼öµµ ÀÖ°ÚÁö¸¸ ºñÁÖ¾ó C++ °³¹ßÀÚµéÀÌ Á¤Ã¥À» ÀÌ·¸°Ô °áÁ¤Çß´Ù¸é ÀÌ°ÍÀÌ ÀÚ¿¬½º·¯¿î Çö»óÀÏ ¼öµµ ÀÖ´Ù. ApiEditµµ ÀÚ¼¼È÷ º¸¸é ¹ö±×°¡ ´õ ÀÖÀ» °Í °°Àºµ¥ Àû¾îµµ ³»°¡ º¸±â¿¡´Â º° ¹®Á¦°¡ ¾ø´Â °Í °°´Ù. ÀÌ·± ¹®Á¦´Â °³¹ßÀÚ°¡ ¼ÖÁ÷È÷ ÀÚ¼ö¸¦ Çϱâ Àü¿¡´Â »ç¿ëÀÚµéÀÌ ´«Ä¡Ã¤±â ¹«Ã´ ¾î·Æ´Ù. ±×¸¸Å­ Á¤Ã¥À» °áÁ¤Çϱ⠾î·Æ°í Á¤Ã¥´ë·Î ±¸ÇöÇϱ⵵ ¾î·Æ´Ù.