°ü·Ã ÇÔ¼ö¸¦ ´Ù ¸¸µé¾úÀ¸´Ï ÀÌÁ¦ ºÏ¸¶Å© ±â´ÉÀ» ±¸ÇöÇÏ´Â °ÍÀº ¾ÆÁÖ ½±´Ù. OnCreate¿¡¼ ClearBookmark ÇÔ¼ö¸¦ È£ÃâÇÏ¿© ¹è¿À» ÃʱâÈÇÑ´Ù. ÃÖÃÊ ½ÇÇà½Ã ºÏ¸¶Å©´Â Çϳªµµ ¼³Á¤µÇ¾î ÀÖÁö ¾ÊÀº »óÅÂÀÌ´Ù. MarkColor º¯¼ö´Â ºÏ¸¶Å© Ç¥½Ä¿¡ »ç¿ëÇÒ »ö»ó°ªÀε¥ ´«¿¡ Àß ¶ç´Â ³ë¶õ»öÀ¸·Î ÃʱâÈÇÏ¿´´Ù.
BOOL OnCreate(HWND hWnd, LPCREATESTRUCT lpCreateStruct)
{
....
ClearBookmark();
MarkColor=RGB(255,255,0);
ºÏ¸¶Å©´Â ¹®¼ÀÇ À̵¿À» ºü¸£°Ô Çϱâ À§ÇØ »ç¿ëÇÏ´Â ±â´ÉÀ̹ǷΠ¸Þ´º³ª ÄÁÆ®·Ñ °°Àº ÀåÄ¡º¸´Ù´Â ´ÜÃàÅ°·Î »ç¿ëÇÏ´Â °ÍÀÌ È¿À²ÀûÀÌ´Ù. ApiEdit°¡ Á¦°øÇÏ´Â ºÏ¸¶Å© °ü·Ã ´ÜÃàÅ°´Â ´ÙÀ½°ú °°Àºµ¥ º¸ÆíÀûÀ¸·Î ¸¹ÀÌ »ç¿ëÇÏ´Â Å°¸¦ ÇÒ´çÇÏ¿´´Ù.
´ÜÃàÅ° |
¼³¸í |
Ctrl+Shift+0~9 |
À̸§ÀÖ´Â ºÏ¸¶Å© Åä±Û |
Ctrl+0~9 |
À̸§ÀÖ´Â ºÏ¸¶Å©·Î À̵¿ |
Ctrl+F2 |
À̸§¾ø´Â ºÏ¸¶Å© Åä±Û |
F2 |
À̸§¾ø´Â ´ÙÀ½ ºÏ¸¶Å©·Î À̵¿ |
Shift+F2 |
À̸§¾ø´Â ÀÌÀü ºÏ¸¶Å©·Î À̵¿ |
ÀÌ ´ÜÃàÅ°µéµµ ¾×¼¿·¯·¹ÀÌÅÍ·Î Á¤ÀÇÇϸé ÁÁ°ÚÁö¸¸ ApiEdit´Â ¾ÆÁ÷ ¸®¼Ò½º¸¦ »ç¿ëÇÏÁö ¾ÊÀ¸¹Ç·Î Äڵ忡¼ Á÷Á¢ ó¸®Çϵµ·Ï ÇÏÀÚ. OnKey¿¡¼ ´ÜÃàÅ°¸¦ ÀÔ·Â¹Þ¾Æ ºÏ¸¶Å© °ü·Ã ÇÔ¼ö¸¦ È£ÃâÇÏ¿´´Ù.
void OnKey(HWND hWnd, UINT vk, BOOL fDown, int cRepeat, UINT flags)
{
....
if (fDown==FALSE)
return;
if (vk>=¡®0¡¯ && vk<=¡®9¡¯ && bControl) {
if (bShift) {
ToggleBookmark(-1,vk-¡¯0¡¯);
} else {
GotoBookmark(vk-¡¯0¡¯);
}
}
switch (vk)
{
....
case VK_F2:
if (bControl) {
ToggleBookmark(-1,100);
} else {
if (bShift) {
GotoBookmark(11);
} else {
GotoBookmark(10);
}
}
return;
<Ctrl>Å°¿Í <Shift>Å°ÀÇ »óÅ µîÀ» Àß Á¶ÇÕÇÏ¿© ToggleBookmark, GotoBookmark ÇÔ¼ö¸¦ ÀûÀýÈ÷ È£ÃâÇÏ¿´´Ù. ¿©±â±îÁö ÀÛ¼ºÇÏ¸é ºÏ¸¶Å©´Â ÀÌ¹Ì µ¿ÀÛÇÑ´Ù. ÇÏÁö¸¸ ¾îµð°¡ ºÏ¸¶Å©·Î ¼³Á¤µÇ¾î ÀÖ´ÂÁö º¸¿©ÁÖ´Â ÀåÄ¡°¡ ¾ÆÁ÷±îÁö ¾ø´Âµ¥ ºÏ¸¶Å©°¡ ¼³Á¤µÈ ÁÙ¿¡ ºÏ¸¶Å© Ç¥½Ã¸¦ ´Þ¾Æº¸ÀÚ. ºÏ¸¶Å© Ç¥½Ã¸¦ Ãâ·ÂÇÏ´Â ÀÏÀº ÇÑ ÁÙÀ» Ãâ·ÂÇÏ´Â DrawLine¿¡¼ ´ã´çÇÑ´Ù.
int DrawLine(HDC hdc, int Line)
{
....
int Mark;
HBRUSH hMark, OldBrush;
if (MarginWidth != 0) {
....
if (bShowLineNum && pLine[Line].nLine==0) {
....
}
if (pLine[Line].nLine == 0) {
Mark=FindBookmark(pLine[Line].nPara);
if (Mark != -1) {
hMark=CreateSolidBrush(MarkColor);
OldBrush=(HBRUSH)SelectObject(hdc,hMark);
RoundRect(hdc,0,0,10,FontHeight,2,2);
DeleteObject(SelectObject(hdc,OldBrush));
if (Mark >= 0 && Mark <= 9) {
wsprintf(szLine,"%d",Mark);
OldAlign=SetTextAlign(hdc,TA_LEFT);
OldBkMode=SetBkMode(hdc,TRANSPARENT);
SetTextColor(hdc,RGB(0,0,0));
OldFont=(HFONT)SelectObject(hdc,hLineNumFont);
TextOut(hdc,2,0+2,szLine,lstrlen(szLine));
SelectObject(hdc,OldFont);
SetTextAlign(hdc,OldAlign);
SetBkMode(hdc,OldBkMode);
}
}
}
}
return 1;
}
ÁÙ¹øÈ£ ±â´É°ú ¸¶Âù°¡Áö·Î ºÏ¸¶Å©¸¦ º¸¿©ÁÖ·Á¸é ÀÏ´Ü ¸¶ÁøÀÌ ÀÖ¾î¾ß ÇÑ´Ù. ±×¸®°í °¢ ¹®´ÜÀÇ ¼±µÎ¿¡ ´ëÇؼ¸¸ ÀÌ ÁÙÀÌ ºÏ¸¶Å©¸¦ °¡Áö°í ÀÖ´ÂÁö Á¶»çÇÑ´Ù. FindBookmark·Î Á¶»çÇÑ °á°ú ÀÌ ¹®´Ü¿¡ ºÏ¸¶Å©°¡ ¼³Á¤µÇ¾î ÀÖ´Ù¸é ¸¶Áø¿µ¿ª¿¡ »ç°¢ÇüÀ» ±×·Á ºÏ¸¶Å© Ç¥½Ã¸¦ ÇÑ´Ù. À̸§¾ø´Â ºÏ¸¶Å©´Â »ç°¢Çü¸¸ ±×¸®°í À̸§ÀÖ´Â ºÏ¸¶Å©´Â »ç°¢Çü ¾È¿¡ ºÏ¸¶Å© ¹øÈ£±îÁö Ãâ·ÂÇß´Ù.
ºÏ¸¶Å© Ãâ·Â¹®°ú ÁÙ¹øÈ£ Ãâ·Â¹®ÀÌ °°Àº ºí·Ï ¾È¿¡ Àִµ¥ µÎ Ãâ·Â¹®Àº ¼ø¼°¡ ¾øÀ¸¹Ç·Î ¼·Î ÀÚ¸®¸¦ ¹Ù²Ü ¼öµµ ÀÖ´Ù. Áï, ÁÙ¹øÈ£¸¦ ¸ÕÀú Ãâ·ÂÇÑ ÈÄ ºÏ¸¶Å©¸¦ Ãâ·ÂÇÒ ¼öµµ ÀÖ°í ±× ¹Ý´ëµµ °¡´ÉÇÏ´Ù. À̶§ Ãâ·Â¹®ÀÇ ¼ø¼¿¡ µû¶ó µÎ Ç¥½ÄÀÌ °ãÃÆÀ» ¶§ÀÇ ¼öÁ÷À§Ä¡°¡ °áÁ¤µÇ´Âµ¥ µÚ¿¡ ÀÖ´Â Ãâ·Â¹®ÀÌ ´õ À§¿¡ ¿À°Ô µÈ´Ù. ¾Æ¹«·¡µµ ÁÙ¸¶´Ù ÀÖ´Â ÁÙ¹øÈ£º¸´Ù´Â °¡²û¾¿ ³ªÅ¸³ª´Â ºÏ¸¶Å© Ç¥½Ã°¡ ´õ Áß¿äÇϹǷΠºÏ¸¶Å©°¡ ´õ À§¿¡ ÀÖµµ·Ï ÇÏ¿´´Ù.
¸¶Áø ¿µ¿ª¿¡ ¾ÓÁõ¸ÂÀº ³ë¶õ»öÀ¸·Î ºÏ¸¶Å© Ç¥½Ã°¡ µÇ¾î ÀÖÀ¸¸ç <F2>, <Ctrl+¼ýÀÚÅ°>·Î ºÏ¸¶Å© À§Ä¡·Î ºü¸£°Ô À̵¿ÇÑ´Ù. ÁÙ¹øÈ£°¡ 4ÀÚ¸® ÀÌ»óÀÌ µÇ¸é ºÏ¸¶Å© Ç¥½Ã¿Í ÁÙ¹øÈ£°¡ ¾à°£ °ãÄ¡´Â ¾Æ½¬¿òÀÌ ÀÖ±â´Â ÇÏÁö¸¸ ¾îÂ÷ÇÇ ¸¶Áø¿µ¿ªÀÌ Á¼¾Æ µÎ Á¤º¸¸¦ Ãæµ¹¾øÀÌ º¸¿©ÁÖ±â´Â ¾î·Æ´Ù.