¸¶Áø ¿µ¿ªÀº ºÏ¸¶Å©³ª ÁÙ¹øÈ£¸¦ º¸¿©Áֱ⵵ ÇÏÁö¸¸ ¸¶¿ì½º ¾×¼ÇÀ» À§ÇÑ Æ¯º° ±¸¿ªÀ̱⵵ ÇÏ´Ù. ÀÌ ¿µ¿ª¿¡¼ÀÇ ¸¶¿ì½ºµ¿ÀÛÀº Æ÷¸ËÆÿµ¿ª¿¡¼ÀÇ ±×°Í°ú´Â ´Ù¸¥ Àǹ̷ΠÇؼ®µÇ¾î ´Ù¾çÇÑ ¼±Åà µ¿ÀÛÀ» °¡´ÉÇÏ°Ô ÇÑ´Ù. 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> Ŭ¸¯Àº ¹®¼¸¦ Åë°·Î ¼±ÅÃÇÏ´Â °ÍÀÌ´Ù. ÀÌ ±â´ÉÀº ½±±âµµ ÇÏÁö¸¸ ÀÌ¹Ì ÀÛ¼ºµÈ Äڵ尡 ÀÖÀ¸¹Ç·Î µû·Î Äڵ带 ÀÛ¼ºÇÒ ÇÊ¿ä°¡ ¾ø´Ù. 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> Ŭ¸¯Àº 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µµ ÀÚ¼¼È÷ º¸¸é ¹ö±×°¡ ´õ ÀÖÀ» °Í °°Àºµ¥ Àû¾îµµ ³»°¡ º¸±â¿¡´Â º° ¹®Á¦°¡ ¾ø´Â °Í °°´Ù. ÀÌ·± ¹®Á¦´Â °³¹ßÀÚ°¡ ¼ÖÁ÷È÷ ÀÚ¼ö¸¦ Çϱâ Àü¿¡´Â »ç¿ëÀÚµéÀÌ ´«Ä¡Ã¤±â ¹«Ã´ ¾î·Æ´Ù. ±×¸¸Å Á¤Ã¥À» °áÁ¤Çϱ⠾î·Æ°í Á¤Ã¥´ë·Î ±¸ÇöÇϱ⵵ ¾î·Æ´Ù.