¹Ù. ¼±Åÿµ¿ª °ü¸®

¹®¼­ÀÇ ÀϺκÐÀÌ ¼±ÅõǸé ÆĶõ»öÀ¸·Î ¹ÝÀüµÇ¾î ºí·ÏÀÇ ¹üÀ§¸¦ È®½ÇÇÏ°Ô º¸¿©ÁØ´Ù. »ç¿ëÀÚ´Â ÀÌ ¼±Åÿµ¿ª¿¡ ´ëÇØ º¹»ç, »èÁ¦, À̵¿ µîÀÇ ÆíÁýÀ» ÇÏ°Ô µÇ´Âµ¥ ´Ü ÆíÁý±â°¡ Æ÷Ä¿½º¸¦ ÀÒ¾úÀ» ¶§´Â ´çÀå ÆíÁýÀ» ÇÏÁö ¾ÊÀ¸¹Ç·Î ±»ÀÌ ¼±Åÿµ¿ªÀ» º¸¿©ÁÖÁö ¾Ê¾Æµµ µÈ´Ù. ¿ÀÈ÷·Á ¼±Åÿµ¿ªÀ» ¼û±â´Â °ÍÀÌ ´Ù¸¥ ÇÁ·Î±×·¥ÀÇ ÀÔÀå¿¡¼­´Â ´õ º¸±â ÁÁÀ» ¼öµµ ÀÖ´Ù.

¸Þ¸ðÀåÀ» ¿­¾î ÀϺθ¦ ¼±ÅÃÇسõ°í ´Ù¸¥ ÇÁ·Î±×·¥À¸·Î Æ÷Ä¿½º¸¦ ¿Å°Üº¸ÀÚ. »ç¿ëÀÚ°¡ ´çÀå ¸Þ¸ðÀåÀ» »ç¿ëÇÏÁö ¾Ê´Âµ¥µµ ¿©ÀüÈ÷ ¼±Åÿµ¿ªÀ» Ç¥½ÃÇÏ°í Àִµ¥ ÀÌ´Â ¹ÙÅÁÈ­¸éÀ» ¹«Ã´ ÁöÀúºÐÇÏ°Ô º¸À̵µ·Ï ¸¸µç´Ù. ŸÀÌƲ¹Ù´Â È帮°Ô ¹Ù²î¾ú´Âµ¥ ¼±Åÿµ¿ª¸¸ £Àº »öÀ¸·Î °è¼Ó ³²¾Æ ÀÖ´Â ¸ð½ÀÀÌ º°·Î º¸±â ÁÁÁö ¾Ê´Ù. ¿öµåÇÁ·Î¼¼¼­³ª À¥ºê¶ó¿ìÀú °°Àº Á¦´ë·Î ¸¸µç ÇÁ·Î±×·¥Àº Æ÷Ä¿½º¸¦ ÀÒ¾úÀ» ¶§, Áï ÇöÀç »ç¿ëÀÚ°¡ Àڱ⿡°Ô °ü½ÉÀ» º¸ÀÌÁö ¾ÊÀ» ¶§´Â ¼±Åÿµ¿ªÀ» ¼û°Ü ´«¿¡ °Å½½¸®Áö ¾Êµµ·Ï ¹è·ÁÇÑ´Ù.

¹°·Ð ÀÌ ±â´ÉÀº »óȲ¿¡ µû¶ó ÇÊ¿äÇÒ ¼öµµ ÀÖ°í ¾Æ´Ò ¼öµµ ÀÖ´Ù. Æ÷Ä¿½º¸¦ ÀҾ ¿©ÀüÈ÷ ¼±Åÿµ¿ªÀ» º¸¿© Áà¾ß ÇÏ´Â °æ¿ìµµ ÀÖ°í Á» ´Ù¸¥ ¹æ½ÄÀ¸·Î ¼±Åÿµ¿ªÀ» Ç¥½ÃÇÏ´Â °ÍÀÌ ´õ ÁÁÀº °æ¿ìµµ ÀÖ´Â °ÍÀÌ´Ù. ±×·¡¼­ ¿¡µðÆ®³ª ¸®½ºÆ® ºä °°Àº ÄÁÆ®·ÑÀº Æ÷Ä¿½º°¡ ¾øÀ» ¶§ ¼±Åÿµ¿ªÀ» ¾î¶»°Ô Ç¥½ÃÇÒ °ÍÀΰ¡¸¦ ÁöÁ¤ÇÏ´Â ½ºÅ¸ÀÏÀ» °¡Áö°í ÀÖ°í ÀÌ ½ºÅ¸ÀÏ·Î ¼±Åÿµ¿ª ¼û±è ¿©ºÎ¸¦ »ç¿ëÀÚ°¡ ¼±ÅÃÇϵµ·Ï Çسõ¾Ò´Ù.

ApiEditµµ ÀÌ ±â´ÉÀ» ³Ö¾î º¸µµ·Ï ÇÏÀÚ. ´Ü¼øÈ÷ ¼û±è, Ç¥½Ã»Ó¸¸ ¾Æ´Ï¶ó È帮°Ô Ç¥½ÃÇÒ ¼ö ÀÖ´Â ±â´Éµµ ³Ö¾î º¼ °ÍÀÌ´Ù. ºí·Ï ¼û±è ¿É¼ÇÀº ¾Õ¿¡¼­ ÀÌ¹Ì ¼±¾ðÇسõÀº HideSelTypeÀ̶ó´Â Àü¿ªº¯¼ö·Î ÁöÁ¤Çϸç ÀÌ º¯¼öÀÇ °ªÀº ´ÙÀ½°ú °°ÀÌ Á¤ÀÇÇÏ¿´´Ù.

 

°ª

¼³¸í

0

¼±Åÿµ¿ªÀ» ¼û±ä´Ù.

1

È帮°Ô Ç¥½ÃÇÑ´Ù.

2

Æ÷Ä¿½º¸¦ ÀҾ ¼±Åÿµ¿ªÀ» º¸¿©ÁØ´Ù.

 

´õ ¸¹Àº ¿É¼ÇÀ» ¸¸µé ¼öµµ ÀÖÁö¸¸ ÀÏ´Ü ÀÌ Á¤µµ¸é »ç¿ëÀÚÀÇ ÃëÇâÀ» ¸ÂÃ߱⿡ ºÎÁ·ÇÏÁö ¾ÊÀ» °ÍÀÌ´Ù. ÀÌ ¿É¼Çµé Áß °¡Àå ÇÕ¸®ÀûÀÎ °ªÀº È帮°Ô Ç¥½ÃÇÏ´Â 1¹ø °ªÀÌ¸ç ±×·¡¼­ OnCreate¿¡¼­ HideSelTypeÀÇ °ªÀ» 1·Î ÃʱâÈ­ÇÏ¿´´Ù. ¼±Åÿµ¿ªÀ» ¼û±â´Â ¹æ¹ýÀº °£´ÜÇÏ´Ù. DrawLine¿¡¼­ HideSelTypeÀÌ 0ÀÌ°í Æ÷Ä¿½º¸¦ ÀÒÀº »óÅÂÀÌ¸é ¼±Åÿµ¿ªÀ» ¹«½ÃÇÏ¸é µÈ´Ù. ´ÙÀ½ Á¶°Ç¹® Çϳª¸é ¼±Åÿµ¿ªÀ» °£´ÜÇÏ°Ô ¼û±æ ¼ö ÀÖ´Ù.

 

int DrawLine(HDC hdc, int Line)

{

     ....

          if (bInSel && (GetFocus()==hWndMain || HideSelType!=0)) {

               fore=SelFore;

               back=SelBack;

          } else {

               fore=RGB(0,0,0);

               back=GetSysColor(COLOR_WINDOW);

          }

 

¼±Åà »óÅ·ΠÃâ·ÂÇÏ·Á¸é ÀÏ´Ü ÀÌ Á¶°¢ÀÌ ¼±ÅõǾî ÀÖ¾î¾ß ÇÏ°í(bInSel == TRUE) Æ÷Ä¿½º¸¦ °¡Áö°í Àְųª HideSelTypeÀÌ 0ÀÌ ¾Æ´Ï¾î¾ß ÇÑ´Ù. Áï Á¶°¢ÀÌ ¼±ÅõǾî ÀÖ´Â »óÅÂ¶óµµ Æ÷Ä¿½º°¡ ¾ø°í HideSelTypeÀÌ 0À̸é Á¶°¢ÀÌ ¼±ÅõÇÁö ¾ÊÀº °ÍÀ¸·Î °£ÁÖÇÔÀ¸·Î½á ¼±Åÿµ¿ªÀ» ¼û±ä´Ù. 1°ú 2ÀÇ Â÷ÀÌ´Â ¼±Åÿµ¿ªÀ» Ç¥½ÃÇϱâ´Â Ç쵂 »ö»óÀ» ¾î¶»°Ô Ãâ·ÂÇÒ °ÍÀΰ¡¸¸ ´Ù¸£´Ù. ÀÌ Ã³¸®´Â Æ÷Ä¿½º º¯µ¿½Ã¿¡ SelFore, SelBackÀ» ¹Ù²Ù¸é µÈ´Ù.

 

void OnSetFocus(HWND hWnd, HWND hwndOldFocus)

{

     SetCaret(FALSE,FALSE);

 

     SelFore=GetSysColor(COLOR_HIGHLIGHTTEXT);

     SelBack=GetSysColor(COLOR_HIGHLIGHT);

 

    if (HideSelType != 2 && SelStart != SelEnd) {

        InvalidateRect(hWnd,NULL,TRUE);

    }

}

 

void OnKillFocus(HWND hWnd, HWND hwndNewFocus)

{

     DestroyCaret();

 

    if (HideSelType != 2) {

        SelFore=RGB(0,0,0);

        SelBack=RGB(192,192,192);

    }

    if (HideSelType != 2 && SelStart != SelEnd) {

        InvalidateRect(hWnd,NULL,TRUE);

    }

}

 

Æ÷Ä¿½º¸¦ ¹Þ¾ÒÀ» ¶§ SelFore, SelBackÀ» ½Ã½ºÅÛ ÇÏÀ̶óÀÌÆ® »ö»óÀ¸·Î ¹Ù²ã ÁÖ°í Æ÷Ä¿½º¸¦ ÀÒÀ¸¸é ȸ»ö ¹ÙÅÁ¿¡ °ËÁ¤»öÀ¸·Î ¹Ù²Ù¾î ÁØ´Ù. ¼±Åÿµ¿ªÀÇ »ö»óÀÌ ¹Ù²î¸é ÀÛ¾÷¿µ¿ªÀ» ¹«È¿È­ÇÏ¿© ´Ù½Ã ±×¸®µµ·Ï ÇØ¾ß ÇÑ´Ù. ´Ü, ¼±Åÿµ¿ªÀÌ ¾ø°Å³ª HideSelTypeÀÌ 2ÀÎ °æ¿ì, Áï Ç×»ó Ç¥½ÃÀÏ ¶§´Â ±»ÀÌ ´Ù½Ã ±×¸± ÇÊ¿ä°¡ ¾ø´Ù.

 

HideSelTypeÀ» ¹Ù²ã °¡¸ç ¼û±è, È帮°Ô Ç¥½Ã°¡ Á¦´ë·Î µÇ´ÂÁö Å×½ºÆ®Çغ¸ÀÚ. ¿©·¯ ¹ø Å×½ºÆ®Çغ¸¸é ¾Ë°ÚÁö¸¸ ¼±Åÿµ¿ªÀº ¼û±â´Â °Íº¸´Ù È帮°Ô Ç¥½ÃÇÏ´Â °ÍÀÌ °¡Àå º¸±â¿¡ ÁÁÀº °Í °°´Ù. ´Ü, ÀÌ Ã³¸®´Â ¼±Åÿµ¿ª Ç¥½Ã¸¦ Àá½Ã ¼û±â´Â °ÍÀÌÁö ¼±Åà ÀÚü¸¦ ÇØÁ¦ÇÏ´Â °ÍÀº ¾Æ´Ï´Ù.