´Ù. ½Ã½ºÅÛ »ö»ó ó¸®

¿î¿µÃ¼Á¦´Â ÀÏ°üµÈ »ö»ó °ü¸®¸¦ À§ÇØ ½Ã½ºÅÛ »ö»óÀ» Á¤ÀÇÇÏ°í Àִµ¥ ÀÀ¿ë ÇÁ·Î±×·¥µéÀº Ç×»ó °íÁ¤µÈ »ö»ó°ª ´ë½Å ½Ã½ºÅÛ »ö»óÀ» »ç¿ëÇØ¾ß ÇÑ´Ù. ±×·¸Áö ¾ÊÀ¸¸é »ç¿ëÀÚ°¡ ¼±ÅÃÇسõÀº ¹è»ö ¼³Á¤À» ¹«½ÃÇÏ´Â ²ÃÀÌ µÇ¾î ÁÁÁö ¾Ê´Ù. ¶ÇÇÑ ½Ã½ºÅÛ »ö»óÀº ¾ðÁ¦µçÁö »ç¿ëÀÚ¿¡ ÀÇÇØ º¯°æµÉ ¼ö ÀÖÀ¸¸ç ÇÁ·Î±×·¥ÀÌ ½ÇÇàÁßÀÎ µ¿¾È¿¡µµ º¯°æ °¡´ÉÇϱ⠶§¹®¿¡ ÀÀ¿ë ÇÁ·Î±×·¥Àº ½Ã½ºÅÛ »ö»ó º¯È­¿¡ ´ëÇØ ¹ÝÀÀÇÒ ¼ö ÀÖ¾î¾ß ÇÑ´Ù.

¿î¿µÃ¼Á¦´Â ½Ã½ºÅÛ »ö»óÀÌ º¯°æµÉ ¶§ WM_SYSCOLORCHANGE ¸Þ½ÃÁö¸¦ ¸ðµç ž ·¹º§ À©µµ¿ì¿¡°Ô º¸³» Áִµ¥ ÀÌ ¸Þ½ÃÁö¸¦ ¹Þ¾ÒÀ» ¶§ ÂüÁ¶ÇÏ°í ÀÖ´Â ½Ã½ºÅÛ »ö»óÀ» ´Ù½Ã Á¶»çÇÏ°í ÀÛ¾÷¿µ¿ªÀ» ´Ù½Ã ±×·Á¾ß ÇÑ´Ù. ´ç±Ù°ú ApiEditµµ ½Ã½ºÅÛ »ö»óÀ» ¸¹ÀÌ »ç¿ëÇϹǷΠÀÌ ¸Þ½ÃÁö¿¡ ¹ÝÀÀÇÒ ÇÊ¿ä°¡ ÀÖ´Ù. DGWndProc¿¡ ÀÌ ¸Þ½ÃÁö¿¡ ´ëÇÑ Çڵ鷯¸¦ Ãß°¡ÇÑ´Ù.

 

LRESULT CALLBACK DGWndProc(HWND hWnd,UINT iMessage,WPARAM wParam,LPARAM lParam)

{

          ....

        case WM_SYSCOLORCHANGE:OnSysColorChange(hWnd,wParam,lParam);return 0;

     }

     return(DefFrameProc(hWnd,g_hMDIClient,iMessage,wParam,lParam));

}

 

½Ã½ºÅÛ »ö»óÀÌ º¯°æµÉ ¶§ OnSysColorChange ÇÔ¼ö¸¦ È£ÃâÇϵµ·Ï ÇÏ¿© ½Ã½ºÅÛ »ö»ó º¯°æ¿¡ µû¸¥ 󸮸¦ Çϵµ·Ï ÇÑ´Ù. ÀÌ ¸Þ½ÃÁö´Â Â÷Àϵ忡°Ô´Â Àü´ÞµÇÁö ¾ÊÀ¸¹Ç·Î ¸ÞÀÎ À©µµ¿ì´Â ½Ã½ºÅÛ »ö»ó º¯°æ¿¡ ¿µÇâÀ» ¹Þ´Â ¸ðµç ÄÁÆ®·Ñ¿¡°Ô ÀÌ ¸Þ½ÃÁö¸¦ Àü´ÞÇØ¾ß ÇÑ´Ù. ÀϹÝÀûÀ¸·Î °øÅë ÄÁÆ®·ÑµéÀº ¸ðµÎ ÀÌ ¸Þ½ÃÁö¸¦ ¹Þ¾Æ¾ß Çϸç Ç¥ÁØ ÄÁÆ®·ÑµéÀº ±×·² ÇÊ¿ä°¡ ¾ø´Ù.

 

void OnSysColorChange(HWND hWnd,WPARAM wParam,LPARAM lParam)

{

     HWND hChild;

     SInfo *pSi;

 

     SendMessage(hToolBar,WM_SYSCOLORCHANGE,wParam,lParam);

     SendMessage(hStatus,WM_SYSCOLORCHANGE,wParam,lParam);

     SendMessage(hFileTree,WM_SYSCOLORCHANGE,wParam,lParam);

     SendMessage(hFileTab,WM_SYSCOLORCHANGE,wParam,lParam);

     SendMessage(hList,WM_SYSCOLORCHANGE,wParam,lParam);

     InitSysColor();

 

     hChild=GetWindow(g_hMDIClient,GW_CHILD);

     while (hChild) {

          pSi=(SInfo *)GetWindowLong(hChild,0);

          if ((Option.cFore & 0xff000000) == 0) {

              pSi->Ae.SetForeColor(-1);

          }

 

          if ((Option.cBack & 0xff000000) == 0) {

              pSi->Ae.SetBackColor(-1);

          }

 

          if ((Option.cSelFore & 0xff000000) == 0) {

              pSi->Ae.SetSelForeColor(-1);

          }

 

          if ((Option.cSelBack & 0xff000000) == 0) {

              pSi->Ae.SetSelBackColor(-1);

          }

          hChild=GetWindow(hChild,GW_HWNDNEXT);

     }

}

 

´ç±ÙÀÇ Â÷Àϵå·Î Á¸ÀçÇÏ´Â ¸ðµç °øÅë ÄÁÆ®·Ñ¿¡°Ô ÀÌ ¸Þ½ÃÁö¸¦ Àü´ÞÇÏ¿© ÄÁÆ®·ÑÀÌ ½Ã½ºÅÛ »ö»ó º¯°æÀ» ½º½º·Î ó¸®Çϵµ·Ï Çß´Ù. ¼³Á¤ ´ëÈ­»óÀÚ°¡ ¿­·Á ÀÖ´Â °æ¿ì ±âº» »ö»óµéµµ ´Ù½Ã ÃʱâÈ­Çϵµ·Ï Çß´Ù.

ApiEdit´Â Àü°æ»ö, ¹è°æ»ö ¹× ¼±Åà Àü°æ, ¼±Åà ¹è°æ »öÀÌ ½Ã½ºÅÛ »ö»óÀ» ÂüÁ¶Çϴµ¥ ¸¸¾à ÀÌ ¿É¼ÇµéÀÌ ±âº»°ªÀ̶ó¸é »õ·Î ½Ã½ºÅÛ »ö»óÀ» Á¶»çÇϵµ·Ï ÇÏ¿´´Ù. ´Ù¸¥ °øÅë ÄÁÆ®·Ñó·³ ÀÚ½ÅÀÌ Á÷Á¢ WM_SYSCOLORCHANGE ¸Þ½ÃÁö¸¦ ó¸®Çϵµ·Ï ÇÏ´Â °ÍÀÌ ÁÁÀ¸³ª ApiEditÀÇ °æ¿ì´Â ÀÌ ¸Þ½ÃÁö¸¦ Á÷Á¢ ó¸®Çϱ⠰ï¶õÇÑ Á¡ÀÌ ÀÖ´Ù. cFore, cBackÀÌ RGB »ö»óÀ» Á÷Á¢ ±â¾ïÇϴµ¥´Ù »ç¿ëÀÚµéÀÌ ÀÌ °ªÀ» ¹Ù²Ü ¼ö Àֱ⠶§¹®¿¡ ÇöÀç ¼³Á¤µÈ »ö»óÀÌ ½Ã½ºÅÛ »ö»óÀÎÁö ¾Æ´Ï¸é »ç¿ëÀÚµéÀÌ ÁöÁ¤ÇÑ °ªÀÎÁö ±¸ºÐÇÒ ¼ö°¡ ¾ø´Ù.

ÇÏÁö¸¸ È£½ºÆ®ÀÎ ´ç±ÙÀÇ Option ±¸Á¶Ã¼¿¡´Â ÀÌ ¿É¼ÇÀÌ µðÆúÆ®ÀÎÁö ¾Æ´ÑÁö°¡ ±â¾ïµÇ¾î ÀÖÀ¸¹Ç·Î È£½ºÆ®°¡ ÀÌ ¸Þ½ÃÁö¸¦ Á÷Á¢ ó¸®ÇÏ¿© ApiEdit°¡ »ö»óÀ» ´Ù½Ã ¼³Á¤ÇØ¾ß ÇÒ ÇÊ¿ä°¡ ÀÖÀ¸¸é °ü·Ã ÇÔ¼ö¸¦ È£ÃâÇÏ¿´´Ù. ÄÁÆ®·ÑÀÌ ½º½º·Î ó¸®ÇØ¾ß ÇÒ ÀÏÀ» È£½ºÆ®°¡ ´ë½Å ÇÏ°í Àִµ¥ ÀÌ´Â ÄÁÆ®·ÑÀÇ µ¶¸³¼ºÀ» ÇØÄ¡´Â ÁÁÁö ¾ÊÀº ±¸Á¶ÀÌ´Ù. ApiEditÀÇ »ö»ó º¯¼ö¿¡ ½Ã½ºÅÛ »ö»ó ¿©ºÎ¸¦ µû·Î ±â¾ïÇÏ°í »ö»ó º¯È­¿¡ ½º½º·Î ¹ÝÀÀÇϵµ·Ï ÇÏ´Â °ÍÀÌ ´õ ÁÁ´Ù.