¼±Åÿ¡ °ü·ÃµÈ º¯¼ö´Â ´ÙÀ½ 7°¡Áö°¡ ÇÊ¿äÇÏ´Ù. ¼±ÅÃÀº µ¿ÀÛÀÓ°ú µ¿½Ã¿¡ ¹®¼ÀÇ »óÅÂÀ̱⵵ ÇϹǷΠÇöÀç »óŸ¦ ÀúÀåÇÒ º¯¼ö°¡ ¸¹ÀÌ ÇÊ¿äÇÏ´Ù.
int SelStart, SelEnd;
BOOL bCapture;
COLORREF SelFore, SelBack;
int HideSelType;
SelStart, SelEnd´Â À̸§¿¡¼µµ ¾Ë ¼ö ÀÖµíÀÌ ÇöÀç ¼±ÅõǾî ÀÖ´Â ºí·ÏÀÇ ½ÃÀÛ ¿ÀÇÁ¼Â°ú ³¡ ¿ÀÇÁ¼ÂÀÌ´Ù. ÀÌ µÎ ¿ÀÇÁ¼Â »çÀÌÀÇ ¹®ÀÚ¿ÀÌ ¼±Åà »óÅ°¡ µÇ¸ç µÎ °ªÀÌ °°À¸¸é ¼±Åÿµ¿ªÀÌ ¾ø´Â »óÅ°¡ µÈ´Ù. ¿¹¸¦ µé¾î SelStart°¡ 7ÀÌ°í SelEnd°¡ 15¶ó¸é À̶§ ¹®¼ÀÇ ¼±Åà »óÅ´ ´ÙÀ½°ú °°À» °ÍÀÌ´Ù.
¸¶¿ì½º³ª Å°º¸µå ¼±Åà ·çƾ¿¡¼ ÀÌ µÎ º¯¼öÀÇ °ªÀ» ÀûÀýÈ÷ ¹Ù²Ù´Â °ÍÀÌ ¼±Åà ±â´ÉÀÇ ÁÖµÈ ÀÛ¾÷ÀÌ´Ù. Ãâ·Â·çƾÀº ÀÌ µÎ º¯¼ö·ÎºÎÅÍ ¼±Åÿµ¿ªÀÇ ¹üÀ§¸¦ ±¸ÇØ ¹ÝÀü½ÃÄÑ º¸¿©ÁÙ °ÍÀ̸ç Ŭ¸³º¸µå °ü·Ã ·çƾµµ ÀÌ º¯¼ö·ÎºÎÅÍ º¹»çÇÒ ¿µ¿ªÀ» ±¸Çس½´Ù. ÁÖÀÇÇÒ °ÍÀº ¼±ÅÃÀÇ ½ÃÀÛÁ¡Àº ¼±Åÿµ¿ª¿¡ Æ÷ÇÔµÇ¸ç ¼±ÅÃÀÇ ³¡Á¡Àº ¼±Åÿµ¿ª¿¡ Æ÷ÇÔµÇÁö ¾Ê´Â´Ù´Â Á¡ÀÌ´Ù. ÀÌ·± ¿øÄ¢¿¡ ´ëÇؼ´Â ¾Õ¿¡¼µµ ÀÌ¹Ì ³íÇÑ ÀûÀÌ ÀÖ´Ù.
bCapture´Â ¸¶¿ì½º ¹öÆ°À» Ŭ¸¯ÇÑ Ã¤·Î µå·¡±×ÇÒ ¶§ Ä¿¼¸¦ ĸóÇϱâ À§ÇÑ º¯¼öÀ̸ç SelFore, SelBackÀº ¼±Åÿµ¿ªÀ» ±×¸± ¶§ »ç¿ëÇÒ Àü°æ»ö°ú ¹è°æ»öÀÌ´Ù. HideSelTypeÀº ÆíÁý±â°¡ Æ÷Ä¿½º¸¦ ÀÒ¾úÀ» ¶§ ¼±Åÿµ¿ªÀ» ¾î¶»°Ô ó¸®ÇÒ °ÍÀΰ¡¸¦ ÁöÁ¤ÇÏ´Â ¿É¼Ç°ªÀ̸ç Àá½Ã ÈÄ¿¡ ½Ç½ÀÇØ º¼ °ÍÀÌ´Ù. ÀÌ º¯¼öµéÀº OnCreate¿Í OnSetFocus¿¡¼ ´ÙÀ½°ú °°ÀÌ ÃʱâÈÇÑ´Ù.
BOOL OnCreate(HWND hWnd, LPCREATESTRUCT lpCreateStruct)
{
....
SelStart=SelEnd=0;
bCapture=FALSE;
HideSelType=1;
return TRUE;
}
void OnSetFocus(HWND hWnd, HWND hwndOldFocus)
{
SetCaret(FALSE,FALSE);
SelFore=GetSysColor(COLOR_HIGHLIGHTTEXT);
SelBack=GetSysColor(COLOR_HIGHLIGHT);
}
ÃÖÃÊ ¼±Åÿµ¿ªÀº ¾øÀ¸¸ç ĸóµµ µÇ¾î ÀÖÁö ¾Ê´Ù. ¼±Åÿµ¿ªÀÇ ¹è°æ»ö°ú Àü°æ»öÀº ½Ã½ºÅÛ »ö»óÀ¸·ÎºÎÅÍ ±¸Çϴµ¥ º¸Åë ¹è°æ»öÀº ÆĶõ»öÀÌ°í Àü°æ»öÀº Èò»öÀÌ´Ù. ÇÏÁö¸¸ ±×·¸´Ù°í Çؼ RGB¸ÅÅ©·Î·Î ÆĶõ»ö°ú Èò»öÀ» Á÷Á¢ ÁöÁ¤ÇÏ´Â °ÍÀº ¹Ù¶÷Á÷ÇÏÁö ¾ÊÀ¸¸é ¹Ýµå½Ã GetSysColor ÇÔ¼ö·Î ½Ã½ºÅÛ »ö»óÀ» Á¶»çÇØ¾ß ÇÑ´Ù. »ç¶÷¸¶´Ù ÁÁ¾ÆÇÏ´Â »ö»óÀÌ ´Ù¸¥µ¥ ÀÌ ¼³Á¤»óŸ¦ ¹«½ÃÇÏ¸é ¾ÈµÈ´Ù.