Ãʱ⠹öÀü ¸±¸®Áî

Áߺ¹ ÄÚµå Á¦°Å

SoEnty08±îÁö °­Á°¡ ÀǵµÇÑ ±â´ÉÀº ¸ðµÎ ´Ù ±¸ÇöÇß´Ù. °­Á ¸¶Áö¸· ¿¹Á¦ÀÎ SoEnty09´Â ¼Ò½º¸¦ Á¤¸®ÇÏ°í ¹ö±×µµ ¾Æ´Â ¹üÀ§ ³»¿¡¼­´Â ¼öÁ¤ÇÏ¿© ¸±¸®ÁîÇÑ´Ù. °­Á¸¦ À§ÇØ ¼ø¼­´ë·Î ¿¹Á¦¸¦ ¸¸µé´Ù º¸´Ï ¹Ì¸® Àû¿ëÇÏÁö ¸øÇÑ ºÎºÐµµ ÀÖ°í ³ªÁß¿¡¼­¾ß ¹®Á¦¸¦ ¹ß°ßÇÑ °æ¿ìµµ ÀÖ´Ù.

ÀÌ·² °æ¿ì ¾ÕÀ¸·Î ´Ù½Ã µ¹¾Æ°¡ ¼öÁ¤ÇÏ´Â°Ô Á¤»óÀûÀÌÁö¸¸ »ç½Ç ÀÌ °úÁ¤À» ¸î ¹øÀ̳ª °ÅÃÆÀ¸¸ç óÀ½ºÎÅÍ ´Ù½Ã ¸¸µé¾î ¿À´Âµ¥ ¾öû³­ ½Ã°£ÀÌ °É¸°´Ù. Â÷ÈÄ¿¡ °­Á¸¦ ¾Æ¿¹ ´Ù½Ã ¾µ ±âȸ°¡ ÀÖ´Ù¸é ¸ð¸£°ÚÁö¸¸ ÇöÀç´Â ¸¶Áö¸· ¼Ò½º¸¦ Á÷Á¢ ¼öÁ¤ÇÏ´Â °ÍÀÌ È¿À²ÀûÀÌ´Ù.

¸ÕÀú Áߺ¹ Äڵ带 ÇÕÄ£´Ù. Ŭ¸³º¸µå¿¡ ¹®ÀÚ¿­À» º¹»çÇÏ´Â À§Á¬Àº ClipText, ColorTable, EnumFont µîÀÌ Àִµ¥ ¾Õ µÑÀº Á÷Á¢ Äڵ带 ÀÛ¼ºÇÏ´Ù°¡ ÀÚ²Ù ¹Ýº¹µÇ±æ·¹ EnumFont¿¡¸¸ ÇÔ¼ö¸¦ ¸¸µé¾ú´Ù. ÇÔ¼ö°¡ ³ªÁß¿¡ Ãß°¡µÇ¾úÀ¸¹Ç·Î ¾Õ¿¡¼­ ¸¸µç µÎ À§Á¬µµ ÇÔ¼ö¸¦ »ç¿ëÇϵµ·Ï ¼öÁ¤ÇÑ´Ù.

 

void CTextClip::ClipboardTextOnly()

{

    ....

    lstrcpy(p2, p);

    GlobalUnlock(hmem);

    CloseClipboard();

 

    CopyClipboardText(p2);

    free(p2);

    clipCount++;

}

 

À¯´ÏÄÚµå ÅؽºÆ®¸¦ ÀÐÀº ÈÄ ´Ù½Ã º¹»çÇÏ´Â Äڵ带 »èÁ¦ÇÏ°í CopyClipboardText ÇÔ¼ö È£Ãâ·Î ¹Ù²Û´Ù. À§ÂÊÀÇ lstrcpyW È£ÃâÀº lstrcpy·Î ¹Ù²Ù°í Áö¿ªº¯¼ö lenÀº ÀÌÁ¦ ºÒÇÊ¿äÇÏ¿© »èÁ¦ÇÑ´Ù. p2°¡ ¹Ù·Î À§¿¡¼­ ÇÒ´çÇÑ ¹öÆÛ¿©¼­ º¹»ç ÈÄ ÇØÁ¦ÇÏ´Â ÄÚµå´Â ´©¶ôÇÏÁö ¸»¾Æ¾ß ÇÑ´Ù. ColorTableWinÀÇ °¢ ¹öÆ° Ŭ¸¯½ÃÀÇ µ¿ÀÛµµ ¼öÁ¤ÇÑ´Ù.

 

LRESULT CColorTableWin::OnCommand(WPARAM wParam, LPARAM lParam)

{

       ....

       case CT_COPY1:

       case CT_COPY2:

       case CT_COPY3:

       case CT_COPY4:

                  hBtn = GetDlgItem(win_hWnd, LOWORD(wParam));

                  GetWindowText(hBtn, str, 128);

                  CopyClipboardText(str);

                  break;

 

¹öÆ°ÀÇ Ä¸¼ÇÀ» Á¶»çÇÏ¿© ±×´ë·Î º¹»çÇÏ¸é µÈ´Ù. ID·ÎºÎÅÍ ¹öÆ°ÀÇ ÇÚµéÀ» Á¶»çÇÑ ÈÄ ´Ù½Ã ĸ¼ÇÀ» Á¶»çÇߴµ¥ Â÷Àϵå ÄÁÆ®·ÑÀÌ WM_COMMAND ¸Þ½ÃÁö¸¦ º¸³¾ ¶§´Â lParamÀÌ À©µµ¿ì ÇÚµéÀ̹ǷΠ´ÙÀ½°ú °°ÀÌ Á» ´õ ª°Ô ¾µ ¼ö ÀÖ´Ù. ÀÌ·¸°Ô µÇ¸é Áö¿ª º¯¼ö hBtnÀº ÇÊ¿ä ¾ø´Ù.

 

                  GetWindowText((HWND)lParam, str, 128);

                  CopyClipboardText(str);

 

´ÙÀ½Àº »ö»óÀ» ¼±ÅÃÇÏ´Â ¿À³Êµå·Î¿ì ÄÞº¸ ¹Ú½ºÀÇ Äڵ带 ÇÕÄ£´Ù. ¼¼ ±ºµ¥¼­ »ö»óÀ» Ç¥½ÃÇÏ´Â ¿À³Êµå·Î¿ì ÄÞº¸ ¹Ú½º¸¦ »ç¿ëÇϴµ¥ »ç¿ëÇÏ´Â »ö»óÇ¥°¡ ´Ù¸¦ »Ó »ö»óÀ» ±×¸®´Â ¹æ¹ýÀº ¶È°°´Ù. ´ÙÀ½ ÇÔ¼ö¸¦ Util ¸ðµâ¿¡ Ãß°¡ÇÑ´Ù.

 

void DrawOwnerItem(LPARAM lParam, sNamedColor arColor[])

{

       HBRUSH bkBrush, Brush, oldBrush;

       LPDRAWITEMSTRUCT lpdis = (LPDRAWITEMSTRUCT)lParam;

 

       // ¼±Åà ¹è°æ ±×¸²

       if (lpdis->itemState & ODS_SELECTED) {

                  bkBrush = CreateSolidBrush(RGB(0, 0, 255));

                  SetTextColor(lpdis->hDC, RGB(255, 255, 255));

       } else {

                  bkBrush = CreateSolidBrush(RGB(255, 255, 255));

                  SetTextColor(lpdis->hDC, RGB(0, 0, 0));

       }

       FillRect(lpdis->hDC, &lpdis->rcItem, bkBrush);

       DeleteObject(bkBrush);

 

       // »ö»ó ±×¸²

       Brush = CreateSolidBrush(arColor[lpdis->itemID].color);

       oldBrush = (HBRUSH)SelectObject(lpdis->hDC, Brush);

       Rectangle(lpdis->hDC, lpdis->rcItem.left + 2, lpdis->rcItem.top + 1,

                  lpdis->rcItem.left + 20, lpdis->rcItem.bottom - 1);

       SetBkMode(lpdis->hDC, TRANSPARENT);

       TextOutSz(lpdis->hDC, lpdis->rcItem.left + 25, lpdis->rcItem.top + 2,

                  arColor[lpdis->itemID].name);

       SelectObject(lpdis->hDC, oldBrush);

       DeleteObject(Brush);

}

 

WM_DRAITEMÀÇ lParamÀ¸·Î ±×¸®±â¿Í °ü·ÃµÈ ¸ðµç ÀÛ¾÷ Áö½Ã°¡ Àü´ÞµÇ¹Ç·Î ÀÌ Àμö¸¦ ±×´ë·Î ¹Þ°í Ç¥½ÃÇÒ »ö»ó ¹è¿­¸¸ Àü´Þ¹ÞÀ¸¸é ÄÞº¸ ¹Ú½º¸¦ ±×¸± ¼ö ÀÖ´Ù. À§Á¬ ¼±ÅÃâÀÇ ÄÞº¸ ¹Ú½º ±×¸®±â ¸Þ½ÃÁö¿¡¼­ ÀÌ ÇÔ¼ö¸¦ È£ÃâÇÑ´Ù.

 

INT_PTR CALLBACK CMainWindow::SelWidgetDlgProc(HWND hDlg, UINT iMessage, WPARAM wParam, LPARAM lParam)

{

       ....

       case WM_DRAWITEM:

                  if (wParam == IDC_CBBACKCOLOR) {

                            DrawOwnerItem(lParam, arWidgetBackColor);

                            return TRUE;

                  }

 

lParamÀ» ±×´ë·Î ³Ñ°ÜÁÖ°í ÄÞº¸ ¹Ú½º°¡ ±×¸± »ö»ó ¹è¿­À» µÎ ¹ø° Àμö·Î Àü´ÞÇÏ¸é ³ª¸ÓÁö´Â ÇÔ¼ö ¾È¿¡¼­ ÀÚµ¿À¸·Î ó¸®ÇÑ´Ù. ¼±Åà Ç׸ñÀÎ °æ¿ì »ö»óÀ» ¹Ù²Ù°í »ç°¢Çü¿¡ »ö»óÀ» ±×¸®°í ±× ¿·¿¡ »ö»óÀÇ À̸§µµ °°ÀÌ Ãâ·ÂÇÑ´Ù. ÆùÆ®´Â µû·Î ¼³Á¤ÇÏÁö ¾Ê¾Æµµ ´ëÈ­»óÀÚÀÇ ÆùÆ®¸¦ µû¸£µµ·Ï µÇ¾î ÀÖ¾î ÀÌ´ë·Î µÎ¸é µÈ´Ù.

º¹ÀâÇÑ ±¸¹®ÀÌ ÇÔ¼ö ¾ÈÀ¸·Î µé¾î°¨À¸·Î½á È£ÃâºÎ°¡ °£´ÜÇØÁ³´Ù. »Ó¸¸ ¾Æ´Ï¶ó Á÷Á¢ ó¸®Çϱâ À§ÇØ ¼±¾ðÇß´ø ºê·¯½Ã³ª ÆĶó¹ÌÅÍ º¯¼öµµ ºÒÇÊ¿äÇÏ´Ù. ¹Ì»ç¿ë º¯¼ö´Â º¸ÀÌ´Â Áï½Ã ¹Ù·Î »èÁ¦ÇÏ´Â °ÍÀÌ ÁÁ´Ù. ÀÌÈÄ¿¡µµ ¹Ì»ç¿ë º¯¼ö°¡ °è¼Ó »ý±â´Âµ¥ ÄÄÆÄÀÏ·¯ÀÇ ¸Þ½ÃÁö¸¦ º¸°í »èÁ¦ÇÏÀÚ. ´ÙÀ½Àº ¸ÞÀÎ ¿É¼ÇâÀ» ¼öÁ¤ÇÑ´Ù.

 

INT_PTR CALLBACK CMainWindow::MainDlgProc(HWND hDlg, UINT iMessage, WPARAM wParam, LPARAM lParam)

{

       ....

       case WM_DRAWITEM:

                  DrawOwnerItem(lParam, arMainColor);

                  return TRUE;

 

¿ª½Ã ÇÔ¼ö È£Ãâ ÇѹøÀÌ¸é °£´ÜÇÏ°Ô ³¡³­´Ù. ¸Þ¸ð ¼Ó¼ºÃ¢¿¡´Â Àü°æ»ö, ¹è°æ»ö¿¡ ´ëÇØ ¿À³Ê µå·Î¿ì ÄÞº¸ ¹Ú½º°¡ µÎ °³³ª ÀÖ´Ù. Á¶°Ç¿¡ µû¶ó »ö»óÇ¥°¡ ´Þ¶óÁú »Ó ±×¸®´Â ¹æ¹ýÀº °°´Ù.

 

INT_PTR CALLBACK MemoDlgProc(HWND hDlg, UINT iMessage, WPARAM wParam, LPARAM lParam)

{

       ....

       case WM_DRAWITEM:

                  if (wParam == IDC_CBFORE) {

                            DrawOwnerItem(lParam, arMemoFore);

                  } else {

                            DrawOwnerItem(lParam, arMemoBack);

                  }

                  return TRUE;

 

ÄÁÆ®·Ñ¿¡ µû¶ó Àü´ÞÇÏ´Â »ö»óÇ¥¸¸ ´Ù¸¦ »Ó lParamÀº ±×´ë·Î ³Ñ°Ü¾ß ÇÑ´Ù. »ö»óÇ¥¸¦ ¼±ÅÃÇÏ´Â ºÎºÐÀ» »ïÇ× ¿¬»êÀÚ·Î ¹Ù²Ù¸é ÇÑ ÁÙ·Î ¾ÐÃàÇÒ ¼ö ÀÖ´Ù.

 

DrawOwnerItem(lParam, wParam == IDC_CBFORE ? arMemoFore : arMemoBack);

 

ÀÌ ¿Ü¿¡ EnumFont ƼÁ¬Ã¢¿¡¼­µµ ¿À³Êµå·Î¿ì·Î ÆùÆ®¸¦ ±×¸®´Âµ¥ ÀÌ °æ¿ì´Â »ö»óÀÌ ¾Æ´Ï·Î ÆùÆ®¿©¼­ À§ ÇÔ¼ö¸¦ ¾µ ¼ö ¾ø´Ù. ¸¸¾à Ä¿½ºÅÒ ÆùÆ® ¸®½ºÆ® ¹Ú½º¸¦ ¿©·¯ °÷¿¡¼­ »ç¿ëÇÑ´Ù¸é ÀÌ ºÎºÐµµ µû·Î ÇÔ¼ö·Î »©´Â °ÍÀÌ ÁÁ´Ù.

¼¼ °÷ÀÇ ÄÚµå µ¢¾î¸®¸¦ Çϳª·Î ÇÕÃÄ ´ë·« 60ÁÙ Á¤µµ ÁÙ¾î µé¾ú´Ù. ÄÚµå ÁÙ ¼ö°¡ ÁÙ¾îµç °Íº¸´Ù °ü¸®ÇÒ ´ë»óÀÌ ÁÙ¾îµé¾î ÀÌÈÄ »ö»ó ÄÞº¸ ¹Ú½º¸¦ °³¼±ÇÒ ¶§ ÇÔ¼ö¸¸ ¼öÁ¤ÇÏ¸é µÈ´Ù. ÀÌ·± ÀÌÀ¯·Î µÎ ¹ø ÀÌ»ó Áߺ¹µÇ¸é Áï½Ã ÅëÇÕÇÏ´Â °ÍÀÌ ÁÁ´Ù. ÀÌ ÇÁ·ÎÁ§Æ®´Â ¼ø¼­´ë·Î ½Ç½ÀÇÏ´Ù º¸´Ï Áߺ¹ Äڵ尡 ¾ÆÁ÷ ¸¹ÀÌ Àִµ¥ Â÷Â÷ ´õ ÇÕÄ¡±â·Î ÇÑ´Ù.

¹ö±× ¼öÁ¤

°³¹ßÁß¿¡ CWindowÀÇ À©µµ¿ì ¼ö¸í °ü¸®¿¡ ½É°¢ÇÑ ¹®Á¦°¡ ÀÖÀ½À» ÀνÄÇß´Ù. À§Á¬À̳ª ƼÁ¬Àº »ý¸íÁֱ⸦ Àß °ü¸®ÇÏ°í ÀÖÁö¸¸ º°µµ·Î ¶ç¿ì´Â âÀº ¼ö¸í °ü¸®°¡ Á¦´ë·Î µÇÁö ¾Ê´Â´Ù. ColorTableWin, LCDTestWin, EnumFontWin µî WinÀ¸·Î ³¡³ª´Â µ¶¸³ À©µµ¿ìµéÀÌ ±×·¸´Ù.

¾î¶² ¹®Á¦°¡ ÀÖ´ÂÁö µð¹ö±× ¸ðµå·Î ½ÇÇàÇØ ³õ°í CWindowProcÀÇ ´ÙÀ½ À§Ä¡¿¡ Áß´ÜÁ¡À» °É¾î ³õ°í »ö»óÇ¥ ƼÁ¬À» Ŭ¸¯ÇØ º¸ÀÚ. ¿©±â¼­ ColorTableWin °´Ã¼¸¦ »ý¼ºÇÏ¸ç »õ·Î ¸¸µç À©µµ¿ì¸¦ ¸Ê¿¡ µî·ÏÇÑ´Ù.

µî·Ï ½ÃÁ¡¿¡ ¸ÊÀÇ Å©±â¸¦ Á¶»çÇØ º¸¸é 23ÀÌ´Ù. ±× Àü¿¡´Â 22¿´´Âµ¥ ¹æ±Ý 23ÀÌ µÈ °ÍÀÌ´Ù. °è¼Ó ½ÇÇàÇÑ ÈÄ »ö»óÇ¥¸¦ ´Ý°í ´Ù½Ã ¶ç¿ö º¸¸é À̹ø¿¡´Â 24°¡ µÈ´Ù. ½ÇÇàÇÒ ¶§¸¶´Ù °è¼Ó ¸ÊÀÇ À©µµ¿ì¼ö°¡ ´Ã¾î³­´Ù. ÀÌ´Â »ö»óǥâÀÌ µî·Ï¸¸ ÇÒ »Ó ÇØÁ¦¸¦ ÇÏÁö ¾Ê´Â´Ù´Â ¶æÀÌ¸ç ¸Ê¿¡ ºÒÇÊ¿äÇÑ ¾²·¹±â°¡ °è¼Ó ½×ÀδÙ.

°´Ã¼°¡ ÇØÁ¦µÇÁö ¾ÊÀ¸´Ï ¸Þ¸ð¸®´Â °è¼Ó ¼¼°í ÀÖ´Ù. Áø´ÜâÀ» ¿­¾î ³õ°í »ö»óÇ¥¸¦ °è¼Ó ¿­¾î º¸¸é »ç¿ë ¸Þ¸ð¸®°¡ ¿Ï¸¸ÇÏ°Ô ´Ã¾î³ª´Â °ÍÀ» È®ÀÎÇÒ ¼ö Àִµ¥ ±×³ª¸¶ »ö»óÇ¥°¡ ¸Þ¸ð¸®¸¦ ¸¹ÀÌ ¾²Áö ¾Ê±â ¶§¹®¿¡ Ä¡¸íÀûÀÌÁö´Â ¾Ê´Ù.

¾à°£ÀÇ ¸Þ¸ð¸® ´©ÃâÀÌ À־ ´çÀåÀº ´çÀåÀº Å« ¹®Á¦¸¦ ´À³¥ ¼ö ¾ø´Ù. »õ·Î ¸¸µç À©µµ¿ì´Â ÇÚµéÀÌ ÀÌÀü°ú´Â ´Ù¸£±â ¶§¹®¿¡ ¹«È¿ÇÑ °´Ã¼¸¦ ãÁö´Â ¾Ê±â ¶§¹®ÀÌ´Ù. ±×·¯³ª Á¤¸» ±×·¸´Ù°í º¸ÀåÇÒ ¼ö´Â ¾ø´Ù. ¿ì¿¬È÷ °ú°Å ÇÚµé°ú °°Àº ÇÚµéÀÌ »ý¼ºµÉ ¼öµµ ÀÖÀ¸¸ç À̶§´Â ¾û¶×ÇÑ ´Ù¸¥ °´Ã¼¸¦ ÂüÁ¶Çϱ⠶§¹®ÀÌ´Ù.

»ö»óÇ¥¸¦ Á¾·áÇϱâ Àü¿¡ °´Ã¼µµ Áö¿ì°í ¸Ê¿¡¼­µµ Á¦°ÅÇØ¾ß ÇÑ´Ù. OnDestroy¿¡¼­ °´Ã¼¸¦ »èÁ¦Çϴ ó¸®°¡ ÇÊ¿äÇÏ´Ù. ¸¶Áö¸·¿¡ ÀÚ»ìÇÏ´Â Äڵ带 ÀÛ¼ºÇØ º¸ÀÚ. °´Ã¼°¡ ½º½º·Î¸¦ Áö¿ì´Â °ÍÀº ¹®¹ýÀûÀ¸·Î ÇÕ¹ýÀÌ¸ç ±× ÀÚü´Â ¹®Á¦°¡ ¾ø´Ù.  Æı«ÀÚ¿¡¼­ Dispose¸¦ È£ÃâÇÏ¿© °´Ã¼ ¸Ê¿¡¼­ ÀÚ½ÅÀ» Á¦°ÅÇÑ´Ù.

 

LRESULT CColorTableWin::OnDestroy(WPARAM wParam, LPARAM lParam)

{

       ....

       delete this;

       return 0;

}

 

±×·¯³ª ÀÌ Äڵ带 ½ÇÇàÇÏ¸é »ö»óÇ¥°¡ ´ÝÈú ¶§ ´Ù¿îµÇ¾î ¹ö¸°´Ù. ¿Ö³ÄÇϸé WM_DESTROY°¡ À©µµ¿ì »ý¾ÖÀÇ ³¡ÀÌ ¾Æ´Ï¸ç ÀÌÈÄ¿¡µµ WM_NCDESTROY ¸Þ½ÃÁö°¡ ´õ ³¯¶ó°¡±â ¶§¹®ÀÌ´Ù. À©µµ¿ì Æı« ÈÄ Å¸ÀÌƲ ¹Ù³ª °æ°è¼± µîÀÇ ¸®¼Ò½ºµµ Á¤¸®ÇØ¾ß Çϴµ¥ À̶§ °´Ã¼ ÀÚü°¡ »ç¶óÁ® ¹ö¸®¸é ´õ Á¤¸®ÇÒ ÁÖü°¡ ¾ø´Ù.

CWindowProcÀº ¸Ê¿¡ ¾ø´Â °´Ã¼°¡ ¸Þ½ÃÁö¸¦ º¸³»¸é »õ·Î µî·ÏÇϴµ¥ À̶§ lParamÀ¸·Î °´Ã¼ Æ÷ÀÎÅÍ°¡ Àü´ÞµÇÁö ¾Ê¾Æ ij½ºÆÃÇÏ´Ù°¡ ´Ù¿îµÈ´Ù. °´Ã¼¸¦ ¸¸µç ÁÖü°¡ Á÷Á¢ Æı«Çϸé ÀÌ·± ¹®Á¦°¡ ¾ø´Ù. °ú¿¬ ±×·±Áö ƼÁ¬ÀÇ OnClick¿¡ ´ÙÀ½ Äڵ带 ÀÛ¼ºÇÏ¿© ¸¸µç Á÷ÈÄ¿¡ ¹Ù·Î »èÁ¦ÇØ º¸ÀÚ.

 

void CColorTable::OnClick() {

       CColorTableWin* pWin = new CColorTableWin();

       pWin->Create(NULL);

       DestroyWindow(pWin->win_hWnd);

       delete pWin;

       Trace(L"¸Ê Å©±â = %d", CWindow::pWinMap->size());

}

 

À©µµ¿ì¸¦ Æı«ÇÑ ÈÄ¿¡ °´Ã¼¸¦ Áö¿î´Ù. DestroyWindow ÇÔ¼ö È£ÃâÁß¿¡ Æı«¿Í °ü·ÃµÈ ÀÏ·ÃÀÇ ¸Þ½ÃÁö°¡ ¸ðµÎ ³¯¶ó°¡¸ç ÀÌ ÇÔ¼ö°¡ ¸®ÅÏÇßÀ» ¶§´Â ´õ ó¸®ÇÒ ¸Þ½ÃÁö°¡ ¾ø´Ù. ÀÌ »óÅ¿¡¼­ °´Ã¼¸¦ Áö¿ì¸é Disposeµµ Á¤»óÀûÀ¸·Î È£ÃâµÇ°í °´Ã¼³ª ¸Ê Å©±â³ª º¯È­¾øÀÌ ÀÏÁ¤ÇÏ°Ô À¯ÁöÇÒ ¼ö ÀÖ´Ù.  Trace¸¦ Âï¾î º¸¸é °ú¿¬ ±×·¸´Ù.

 

¸Ê Å©±â = 22

¸Ê Å©±â = 22

¸Ê Å©±â = 22

 

¹®Á¦´Â DestroyWindow¸¦ Äڵ忡¼­ Á÷Á¢ È£ÃâÇÏ´Â°Ô ¾Æ´Ï¶ó »ç¿ëÀÚ°¡ È£ÃâÇÑ´Ù´Â Á¡ÀÌ´Ù. ŸÀÌƲ ¹ÙÀÇ X ¹öÆ°À» ´©¸£¸é À̶§ À©µµ¿ì¸¦ Æı«ÇÏ¸ç °´Ã¼´Â OnDestroy¸¦ ÅëÇØ Æı«µÈ´Ù´Â »ç½Ç¸¸ Å뺸¹ÞÀ» »Ó, ¿ÏÀüÈ÷ Æı«µÈ ½ÃÁ¡À» ÀâÀ» ¼ö°¡ ¾ø´Ù. À©µµ¿ì°¡ Æı«µÉ ¶§ ¾î¶² ¸Þ½ÃÁö°¡ ³¯¶ó¿À´ÂÁö Âï¾î º¸ÀÚ.

 

CColorTableWin* pCt;

void CColorTable::OnClick() {

       CColorTableWin* pWin = new CColorTableWin();

       pCt = pWin;

       pWin->Create(NULL);

       Trace(L"Æı«Àü");

       DestroyWindow(pWin->win_hWnd);

       Trace(L"Æı«ÈÄ");

       delete pWin;

       Trace(L"Á¦°ÅÈÄ");

       Trace(L"¸Ê Å©±â = %d", CWindow::pWinMap->size());

}

 

Àӽà Àü¿ª º¯¼ö¿¡ »ö»óÇ¥ °´Ã¼ÀÇ Æ÷ÀÎÅ͸¦ ´ëÀÔÇØ ³õ´Â´Ù. CWindowProc¿¡¼­´Â ÀÌ °´Ã¼°¡ ¹Þ´Â ¸ðµç ¸Þ½ÃÁö¸¦ ´ýÇÁÇÑ´Ù. ´Ù¸¥ À©µµ¿ì¿Í °øÀ¯ÇÏ´Â ÇÔ¼ö¿©¼­ Áß´ÜÁ¡À¸·Î´Â ƯÁ¤ °´Ã¼ÀÇ ¸Þ½ÃÁö¸¸ »ìÆì º¸±â ¾î·Æ°í Trace¸¦ Âï¾î ºÁ¾ß ÇÑ´Ù.

 

extern CColorTableWin* pCt;

LRESULT CALLBACK CWindow::CWindowProc(HWND hWnd, UINT iMessage, WPARAM wParam, LPARAM lParam)

{

       CWindow* pWin = nullptr;

 

       if (pWinMap->find(hWnd) != pWinMap->end()) {

                  pWin = (*pWinMap)[hWnd];

       }

 

       if (pCt != nullptr && hWnd == pCt->win_hWnd) {

                  Trace(L"¸Þ½ÃÁö = %x", iMessage);

       }

 

¸Þ½ÃÁö »ó¼ö¸¦ Á¤ÀÇÇÏ´Â WinUser.h¿¡ ¸Þ½ÃÁö ¹øÈ£°¡ 16Áø¼ö·Î Á¤ÀǵǾî ÀÖ¾î ¸Þ½ÃÁö ¹øÈ£µµ 16Áø¼ö·Î Ãâ·ÂÇß´Ù. Æı«½Ã Àü´ÞµÇ´Â ¸Þ½ÃÁö´Â ´ÙÀ½°ú °°´Ù.

 

¸Þ½ÃÁö = 5

¸Þ½ÃÁö = 7f

Æı«Àü

¸Þ½ÃÁö = 90            // ºñ¹®¼­È­

¸Þ½ÃÁö = 46            // WM_WINDOWPOSCHANGING

¸Þ½ÃÁö = 47            // WM_WINDOWPOSCHANGED

¸Þ½ÃÁö = 86            // WM_NCACTIVATE

¸Þ½ÃÁö = 6                        // WM_ACTIVATE

¸Þ½ÃÁö = 8                        // WM_KILLFOCUS

¸Þ½ÃÁö = 281                     // WM_IME_SETCONTEXT

¸Þ½ÃÁö = 282                     // WM_IME_NOTIFY

¸Þ½ÃÁö = 2                        // WM_DESTROY

¸Þ½ÃÁö = 82            // WM_NCDESTROY

Æı«ÈÄ

Á¦°ÅÈÄ

¸Ê Å©±â = 22

 

Æı« Àü¿¡ À§Ä¡ º¯¼ö, È°¼ºÈ­, Æ÷Ä¿½º º¯È­ µî ¿©·¯ °¡Áö ¸Þ½ÃÁö°¡ ³¯¶ó¿Â´Ù. ±×¸®°í Æı«ÇÑ´Ù´Â WM_DESTROY ¸Þ½ÃÁö°¡ ³¯¶ó¿À¸ç ¸¶Áö¸·À¸·Î WM_NCDSESTROY°¡ ³¯¶ó¿Â´Ù. ÀÌ ¸Þ½ÃÁö¸¦ ¹Þ¾ÒÀ» ¶§ °´Ã¼¸¦ Áö¿ì°í ¸Ê¿¡¼­µµ Á¦°ÅÇÏ¸é µÈ´Ù.

±×·¯³ª ¸ðµç À©µµ¿ì¸¦ ´Ù ÀÌ ¹æ½ÄÀ¸·Î Á¤¸®ÇÒ ÇÊ¿ä´Â ¾ø´Ù. À§Á¬, ƼÁ¬Àº ÀÌ¹Ì Àß °ü¸®ÇÏ°í ÀÖ°í À©µµ¿ì ½ºÅ¸ÀÏ¿¡ µû¶ó¼­´Â WM_NCDESTROY ÀÌÈÄ¿¡µµ ´õ ó¸®ÇÒ ¸Þ½ÃÁö°¡ ÀÖÀ» ¼öµµ ÀÖ´Ù. »ç¿ëÀÚ°¡ Á÷Á¢ ´Ý´Â â¿¡ ÇÑÇؼ­¸¸ ÀÌ Á¤Ã¥À» Àû¿ëÇÏ¸é µÈ´Ù. CWindow¿¡ ¸â¹ö¸¦ Çϳª ´õ Ãß°¡ÇÑ´Ù.

 

class CWindow

{

public:

       ....

       bool delegateDispose = false;

 

ÀÌ ¸â¹ö°¡ trueÀÌ¸é ¸Þ½ÃÁö Çڵ鷯¿¡¼­ ¾Ë¾Æ¼­ °´Ã¼¸¦ Á¤¸®ÇØ ÁØ´Ù. Á¤¸® ÀÛ¾÷À» ÃÖ»óÀ§ Ŭ·¡½º¿¡°Ô À§ÀÓÇÑ´Ù´Â ¶æÀÌ´Ù. OnMessageÀÇ ¸¶Áö¸·¿¡ Á¤¸® Äڵ带 ÀÛ¼ºÇÑ´Ù.

 

LRESULT CWindow::OnMessage(UINT iMessage, WPARAM wParam, LPARAM lParam) {

    ....

    LRESULT ret = DefWindowProc(win_hWnd, iMessage, wParam, lParam);

    if (delegateDispose && iMessage == WM_NCDESTROY) {

        delete this;

    }

    return ret;

}

 

À§ÀÓÇÑ À©µµ¿ì°¡ WM_NCDESTROY¸¦ ¹Þ¾ÒÀ» ¶§ ÀÚ½ÅÀ» »èÁ¦ÇÑ´Ù. »ö»óÇ¥´Â ÀÚ½ÅÀ» »ý¼ºÇÑ Á÷ÈÄ¿¡ Á¤¸®¸¦ À§ÀÓÇÑ ÈÄ »ý¼ºÇÑ´Ù.

 

void CColorTable::OnClick() {

    CColorTableWin* pWin = new CColorTableWin();

    pWin->delegateDispose = true;

    pWin->Create(NULL);

}

 

ÀÌ ÀÛÀüÀÌ °ú¿¬ Àß ÅëÇÏ´ÂÁö CWindowProc¿¡ Trace È£ÃâÀ» Ãß°¡ÇØ º¸ÀÚ.  ÀÌ ·Î±×´Â ¾ÕÀ¸·Îµµ °è¼Ó °üÂûÇØ¾ß ÇϹǷΠ¾Æ¿¹ Æ÷ÇÔ½ÃÄÑ µÎµµ·Ï ÇÑ´Ù.

 

LRESULT CALLBACK CWindow::CWindowProc(HWND hWnd, UINT iMessage, WPARAM wParam, LPARAM lParam)

{

       if (pWin == nullptr) {

                  ....

                  (*pWinMap)[hWnd] = pWin;

                  pWin->win_hWnd = hWnd;

                  Trace(L"%d À©µµ¿ì µî·Ï. ¸Ê Å©±â = %d", hWnd, pWinMap->size());

 

¿©±â±îÁö ÀÛ¼ºÇÑ ÈÄ »ö»óÇ¥¸¦ ¿­¾î´Ù ´Ý¾Ò´Ù ¹Ýº¹ÇØ º¸¸é Àß Á¤¸®µÇ´Â °ÍÀ» ¾Ë ¼ö ÀÖ´Ù. ±×·¯³ª SizeMeter, Tetris, EnumFont µîÀº ¾ÆÁ÷ ÀÌ Á¤Ã¥À» Àû¿ëÇÏÁö ¾Ê¾Æ À©µµ¿ì ¼ö°¡ °è¼Ó ´Ã¾î³­´Ù. °¢ ƼÁ¬ÀÇ OnClick¿¡µµ µ¿ÀÏÇÑ Äڵ带 ÀÛ¼ºÇØ Á¤¸®¸¦ À§ÀÓÇÏÀÚ.

Tidget.cpp¿¡¼­ OnClickÀ¸·Î °Ë»öÇؼ­ À©µµ¿ì¸¦ »ý¼ºÇÏ´Â ¹®Àå ¹Ù·Î ´ÙÀ½¿¡ À§ÀÓ¹®À» ÀÛ¼ºÇØ ³ÖÀ¸¸é µÈ´Ù. MoveCursor³ª TextClip µî º°µµÀÇ Ã¢À» ¶ç¿ìÁö ¾Ê´Â ƼÁ¬Àº ±×·² ÇÊ¿ä°¡ ¾ø´Ù.

 

void CLCDTest::OnClick() {

       CLCDTestWin* pWin = new CLCDTestWin();

       pWin->delegateDispose = true;

       pWin->Create(NULL);

}

....

 

void COneImage::OnClick()

{

    if (nowImage != NULL) {

        // ºä¾î¸¦ ¿¬´Ù.

        if (pViewer == NULL) {

           pViewer = new CImageViewer();

                            pViewer->delegateDispose = true;

                  ....

 

À§Á¬ Áß¿¡´Â À¯ÀÏÇÏ°Ô ImageSlide°¡ âÀ» ¶ç¿ì´Âµ¥ ¿©±â¿¡µµ µ¿ÀÏÇÑ Ã³¸®°¡ ÇÊ¿äÇÏ´Ù.

 

LRESULT CImageSlide::OnLButtonDown(WPARAM wParam, LPARAM lParam)

{

        ...

        CImageViewer* pImgViewer;

        pImgViewer = new CImageViewer();

                  pImgViewer->delegateDispose = true;

 

¿©±â±îÁö ó¸®ÇÑ ÈÄ °´Ã¼ ¸ÊÀÌ Àß Á¤¸®µÇ´Â °ÍÀ» È®ÀÎÇߴµ¥ ¶Ç ´Ù¸¥ ¹®Á¦°¡ ¹ß»ýÇß´Ù. Å×Æ®¸®½º âÀ» ´Ý´Â Áß¿¡ ´Ù¿îµÇ´Â ¹®Á¦°¡ ¹ß°ßµÇ¾ú´Ù. ¶È°°Àº âÀε¥ È¥ÀÚ Á״´ٴ °ÍÀº Å×Æ®¸®½º ÀÚü¿¡ ¹ö±×°¡ ÀÖ´Ù´Â ¾ê±â´Ù. Á¶»çÇØ º¸´Ï board ¹è¿­ÀÌ 1000 * 1000 Å©±â·Î 4MÀε¥ ¸â¹ö Å©±â°¡ ÀÌ·¸°Ô Å©¸é µ¿Àû ÇÒ´ç½Ã¿¡µµ ¹®Á¦°¡ ¹ß»ýÇÑ´Ù.

 

unsigned char board[405][205];

 

¿ä·¸°Ô ´ÙÀ̾îÆ®¸¦ Á» Çß´Ù. ÃÖ´ë Å©±â°¡ 400 * 200ÀÌÁö¸¸ º®ºÎºÐ±îÁö °í·ÁÇØ¾ß ÇϹǷΠ¼Ò½ÉÇÏ°Ô Á¶±Ý ´õ ´Ã·È´Ù. 80K·Î ´ë·« 40¹è ÁÙÀÎ ¼ÀÀÌ´Ù. ¹ö±×¸¦ Àâ´Ù º¸¸é ´Ù¸¥ ¹ö±×°¡ ¶Ç º¸ÀÌ´Â °æ¿ì°¡ Àִµ¥ º¸ÀÌ´Â Á·Á· Àâ¾Æ¾ß ÇÑ´Ù. ÀÌ»óÀ¸·Î â Á¤¸® ¹®Á¦¸¦ ÀϴܶôÇߴµ¥ ÀÌ ¹æ¹ýµµ ¿Ïº®ÇÑ °ÍÀº ¾Æ´Ï´Ù. ¶Ç ´Ù¸¥ ¹®Á¦°¡ ´õ ¹ß»ýÇÑ´Ù¸é ´ÙÀ½ ÀÛÀüÀ» °í·ÁÁßÀÌ´Ù.

 

- ¸ðµç âÀÇ ´Ý±â ¸í·ÉÀ» Á÷Á¢ ó¸®ÇÑ´Ù. WM_SYSCOMMAND ¸Þ½ÃÁö¿¡¼­ SC_CLOSE ¸í·ÉÀ» Á÷Á¢ ó¸®Çϸé DestroyWindow¿Í Dipose¸¦ È£ÃâÇÒ ¼ö ÀÖ´Ù. ±×·¯³ª ¸ðµç À©µµ¿ì°¡ ÀÌ Ã³¸®¸¦ ÀÏÀÏÀÌ Çϱâ´Â ¹ø°Å·Ó´Ù.

- Æı«ÇÒ Ã¢ÀÇ Æ÷ÀÎÅ͸¦ º¤ÅÍ¿¡ ÀúÀåÇØ µÎ°í ¸ÞÀÎÀÌ ÁÖ±âÀûÀ¸·Î Á¤¸®ÇÑ´Ù. ÀÚ¹Ù °¡»ó ¸Ó½ÅÀ̳ª C#ÀÇ ÇÁ·¹ÀÓ¿öÅ©°¡ ÇÏ´Â °¡ºñÁö Ä÷º¼ÇÀ» µû¶óÇÏ´Â °ÍÀε¥ ÀÇ¿Ü·Î È¿À²ÀûÀÌ°í ÆíÇÏ´Ù.

 

Áö±ÝÀº ÀÌ Á¤µµ±îÁö °í·ÁÇÒ Á¤µµ´Â ¾Æ´Ï¾î¼­ ºñ±³Àû °£´ÜÇÑ ¹æ¹ýÀ¸·Î ÇØ°áÇß´Ù. ¿Ïº®ÇÑ ÇØ°áÃ¥Àº ¾Æ´ÏÁö¸¸ ¿øÀÎÀ» ºÐ¸íÈ÷ ¾Ë°í ÃëÇÑ Á¶Ä¡À̹ǷΠ´Ù¸¥ ¹®Á¦°¡ ´õ ¹ß»ýÇصµ ´ëó °¡´ÉÇÏ´Ù.

¶Ç ´Ù¸¥ ¹ö±×´Â ¸ÞÀÎâÀÇ ÆøÀ» Á¶Á¤ÇÒ ¶§ Æ®·¹ÀÌÀÇ µÎ²²°¡ ¹Ù·Î °»½ÅµÇÁö ¾Ê°í ÇѹÚÀÚ ´Ê´Ù°¡ ¸¶¿ì½º¸¦ ³õÀ¸¸é ¾û¶×ÇÑ Å©±â·Î ¼³Á¤µÇ´Â °ÍÀÌ´Ù. µÎ ÁÙ·Î ³ª¿­Çß´Ù°¡ ÆøÀ» ÁÙ¿© ¼¼ÁÙÀÌ µÇ¸é µÎÁÙ, ¼¼ÁÙ »çÀ̸¦ ¿Ô´Ù °¬´Ù ÇÏ´Ù°¡ °á±¹ µÎÁÙ¿¡¼­ ¸ØÃß¾î ¹ö¸®¸ç ¾Æ·¡ÂÊÀÌ À߸°´Ù.

½ºÆÄÀ̷ΠâÀ» Âï¾î º¸¸é Æ®·¹ÀÌÀÇ ³ôÀÌ´Â 88·Î ¸ÂÁö¸¸ Àüü À©µµ¿ìÀÇ ³ôÀÌ°¡ 1030À̾î¾ß Çϴµ¥ 1002·Î 28Çȼ¿ ´õ Àû°Ô ¼³Á¤µÈ´Ù. 28Àº ƼÁ¬°ú °¸ÀÇ ÇÕÀÌ¸ç µÎ ÁÙÀÏ ¶§ÀÇ ³ôÀÌ·Î º¹¿øµÇ´Â ¹®Á¦°¡ ÀÖ´Ù. â Å©±â¸¦ Âï¾î º¸¸é Æ®·¹ÀÌ°¡ À߸øµÈ °ÍÀÌ ¾Æ´Ï¶ó ¸ÞÀÎÀÇ Å©±â°¡ À߸øµÈ °ÍÀÓÀ» ¾Ë ¼ö ÀÖ´Ù. ÀÌ·² ¶§ ¾²ÀÚ°í ½ºÆÄÀ̸¦ ¸¸µé¾î ³õÀº °ÍÀÌ´Ù.  ¾îµð¼­ °è»êÀ» À߸øÇÏ°í ÀÖ´ÂÁö ¿©±â Àú±â¿¡ Trace¸¦ »ðÀÔÇØ º»´Ù.

 

void CTrayWindow::UpdateTrayThick(int widgetThick)

       Trace(L"widgetThick = %d, perLine = %d, trayLine = %d, trayThick = %d",

                  widgetThick, perLine, trayLine, trayThick);

 

void CMainWindow::Relayout()

       Trace(L"Å©±â Á¶Á¤ %d * %d", clientWidth, clientHeight);

 

LRESULT CMainWindow::OnPaint(WPARAM wParam, LPARAM lParam)

       Trace(L"OnPaint, %d * %d", crt.right, crt.bottom);

 

LRESULT CMainWindow::OnSize(WPARAM wParam, LPARAM lParam)

       Trace(L"OnSize, %d * %d", crt.right, crt.bottom);

 

¿À¸¥ÂÊ °æ°è¼±À» µå·¡±×ÇÏ¿© Å©±â¸¦ Á¶Á¤ÇÏ´Ù°¡ 2ÁÙ¿¡¼­ 3ÁÙ·Î ´Ã¾î³ª´Â ½ÃÁ¡¿¡ Å©±â Á¶Á¤À» ¿Ï·áÇß´Ù. Trace °á°ú´Â ´ÙÀ½°ú °°´Ù.

 

widgetThick = 137, perLine = 4, trayLine = 3, trayThick = 88

Å©±â Á¶Á¤ 145 * 1030         // Relayout¿¡¼­´Â Å©±â Á¦´ë·Î ¼³ÀúÇÏ°í ÀÖÀ½

OnSize, 145 * 1030

Paint, 145 * 1030

OnSize, 144 * 1002                        // Áß°£ Áß°£¿¡ ºÒÇÊ¿äÇÑ OnSize°¡ ³¯¶ó¿À¸ç ¼öÄ¡°¡ Ʋ·ÈÀ½.

widgetThick = 135, perLine = 4, trayLine = 3, trayThick = 88

Å©±â Á¶Á¤ 143 * 1030

OnSize, 143 * 1030

Paint, 143 * 1030                                      // ¿©±â±îÁö °æ°è¼± µå·¡±× Áß

OnSize, 143 * 1002                        // ¸¶¿ì½º ¹öÆ°À» ³õÀ» ¶§ ÀÌÀü Å©±â·Î Àç ¼³Á¤µÇ¾î ¹ö¸².

Paint, 143 * 1002

 

Äڵ忡¼­ Á÷Á¢ ó¸®ÇÏÁö ¾Ê¾Ò´Âµ¥ OnSize°¡ ÀÌÀü Å©±â·Î °­Á¦·Î ³¯¶ó¿À¸ç ¸¶¿ì½º ¹öÆ°À» ³õÀ» ¶§µµ ÀÌÀü Å©±â·Î º¹¿øµÇ¾î ¹ö¸°´Ù. ¾î¶² ¸Þ½ÃÁö°¡ ³¯¶ó¿À´ÂÁö È®ÀÎÇØ ºÁ¾ß Çϴµ¥ ³»°¡ ¸¸µç ½ºÆÄÀÌ´Â ¸Þ½ÃÁö ¿°Å½ ±â´ÉÀº ¾ÆÁ÷ ¾ø´Ù. ÁøÂ¥ ½ºÆÄÀÌ·Î ¸Þ½ÃÁö¸¦ Âï¾î º¸¾Ò´Ù.

517¹ø ¸Þ½ÃÁö¿¡¼­ ¸ÞÀÎÀÇ ³ôÀÌ°¡ 1030À̾ú´Âµ¥ ¸¶¿ì½º ¹öÆ°À» ³õÀ¸¸é ĸó º¯È­, À©µµ¿ì À§Ä¡ º¯È­ µîÀÇ ¸Þ½ÃÁö¸¦ °ÅÄ¡¸ç 1002Â¥¸® OnSize°¡ ÇÑ ¹ø ´õ ³¯¶ó¿Â´Ù. À©µµ¿ì ½ºÅ¸ÀÏÀ̳ª ¸Þ½ÃÁö ÇÁ·Î½ÃÀú µî ¿©·¯ °¡Áö ¿øÀÎÀÌ ÀÖÀ» ¼ö ÀÖ´Ù. SetWindowPos ÇÔ¼öÀÇ Ç÷¡±×°¡ ¹®Á¦Àΰ¡ ½Í¾î MoveWindow·Î ¹Ù²Ù¾î º¸¾Æµµ Áõ»óÀº ¶È°°´Ù.

 

RECT wrt;

GetWindowRect(win_hWnd, &wrt);

MoveWindow(win_hWnd, wrt.left, wrt.top, clientWidth, clientHeight, TRUE);

 

ÀÌ°Ç ¿î¿µÃ¼Á¦°¡ º¸³»ÁÖ´Â °Å¶ó ¹º°¡ ÇÕ´çÇÑ ÀÌÀ¯°¡ ÀÖÀ» °ÍÀ¸·Î »ý°¢µÇ¸ç ¾à Çѽð£ Á¤µµ »ìÆì º¸´Ù°¡ ½Ã°£ ºÎÁ·À¸·Î ÇØ°áÀ» Æ÷±âÇß´Ù. ÀÌ·± ½ÄÀ¸·Î ÇØ°áÇÏÁö ¸øÇÑ Ã¤ ¾Ë°í¸¸ ÀÖ´Â ¹ö±×¸¦ ³ë¿î ¹ö±×(Known Bug)¶ó°í Çϴµ¥ ¿øÄ¢»ó Àâ¾Æ¾ß ÇÏÁö¸¸ ¿©·¯ °¡Áö »çÁ¤À¸·Î ±×·¯Áö ¸øÇÏ´Â °æ¿ì°¡ ÀÖ´Ù. Á» º¸±â ½ÈÀ» »Ó Ä¡¸íÀûÀÌÁö´Â ¾ÊÀ¸¸ç À§Á¬ »çÀ̸¦ »ì¦ Çѹø ´õ µå·¡±×ÇÏ¸é ¹®Á¦°¡ ÇØ°áµÇ±â´Â ÇÑ´Ù.

³»ÀÏ ´çÀå Ãâ±ÙÇØ¾ß ÇÏ´Â »óȲ¿¡¼­ ÀÌ ¹ö±×¸¸ Àâ°í ÀÖÀ» ¼ö°¡ ¾ø¾î ÀÏ´Ü ³²°Ü µÎ°í Â÷ÈÄ¿¡ Àâ±â·Î ÇÑ´Ù. Trace¹®Àº ¾ÆÁ÷ »èÁ¦ÇÏÁö ¾Ê°í ¹®Á¦ ÇØ°á½Ã±îÁö ³²°Ü µÎ±â·Î ÇÑ´Ù. ³ªµµ ÀÌ·± »óȲÀÌ ½ÈÁö¸¸ ¾î¿ ¼ö ¾ø´Ù. ÀÌ ¿Ü¿¡µµ ½¢ÇÑ ¹ö±×°¡ ÀÖ¾ú´Âµ¥ °£´ÜÇÑ °ÍÀº ¸ðµÎ ¾Õ ´Ü°è¿¡¼­ ´Ù ¼öÁ¤ÇØ µÎ¾ú´Ù.

Á¬ ¼±Åà ¹× ¼ø¼­

À§Á¬, ƼÁ¬À» ½Å³ª°Ô ´Ã·Á°¥ ¶§´Â ÀÏ´Ü ¸¸µé¾î ³õ°í º¸´ÂÁö¶ó ¼³¸íÀ̳ª À̸§À» ¼¼½ÉÇÏ°Ô ºÙÀÌÁö ¸øÇÑ´Ù. ±×³É ´ëÃæ ²ôÀû°Å·Á ³õ°í ³ªÁß¿¡ »ý°¢ÇØ º¸ÀÚ´Â ÀÛÀüÀε¥ Áö±ÝÀÌ ¹Ù·Î ±× ³ªÁßÀÌ´Ù. ¸±¸®Áî Çϱâ Àü¿¡ ¼³¸íÀ» Á» ´õ »ó¼¼ÇÏ°í Ä£ÀýÇÏ°Ô ºÙÀÏ ÇÊ¿ä°¡ ÀÖ¾î ÀÏ°ý ÆíÁýÇß´Ù.

 

// ÀÌ ÇÁ·Î±×·¥ÀÌ º¸À¯ÇÑ À§Á¬, ƼÁ¬ ¸ñ·Ï. ÀÌ Áß »ç¿ëÀÚ°¡ ¼±ÅÃÇÑ °Í¸¸ »ç¿ëÇÑ´Ù.

SWidgetInfo arWidgetInfo[] = {

      {L"½Ã°è", L"ÇöÀç ½Ã°£À» º¸¿© ÁØ´Ù. µðÁöÅÐ/¾Æ³¯·Î±× ÆäÀ̽º¸¦ ¼±ÅÃÇÒ ¼ö ÀÖÀ¸¸ç ÃÊ´ÜÀ§ Ç¥½Ã, 24½Ã°£Á¦, µÎ ÀÚ¸® Ç¥±â µîÀÇ ¿É¼ÇÀÌ ÀÖ´Ù.",

             L"Clock", true, 80, 120, GetColorFromName(L"PapayaWhip")},

      {L"Áø¹ýº¯È¯±â", L"2Áø¼ö, 10Áø¼ö, 16Áø¼ö¸¦ ÀÚµ¿ º¯È¯ÇÑ´Ù. ¼¼ °ª Çϳª¸¦ ÀÔ·ÂÇÏ¸é ³ª¸ÓÁö Áø¹ýÀ» Áï½Ã º¯È¯ÇÑ´Ù.",

             L"Radix", true, 50, 120, GetColorFromName(L"Violet")},

      {L"CPU »ç¿ë·®", L"CPU Á¡À¯À²À» ÃÑ 60ȸÀÇ ±×·¡ÇÁ·Î Ç¥½ÃÇÑ´Ù. Á¶»çÁֱ⸦ ¼±ÅÃÇÒ ¼ö ÀÖ°í ÃÖ´ë Á¡À¯À²¿¡ µû¶ó YÃà ¹üÀ§¸¦ ÀÚµ¿ °áÁ¤ÇÑ´Ù.",

             L"CpuUsage", true, 100, 140, GetColorFromName(L"PaleTurquoise")},

      {L"¸Þ¸ð¸® »ç¿ë·®", L"¸Þ¸ð¸® ÃÑ ¼³Ä¡·®, »ç¿ë·®, »ç¿ë ºñÀ²À» Ç¥½ÃÇϸç ÁÖ±âÀûÀ¸·Î °»½ÅÇÑ´Ù. ",

             L"MemUsage", true, 50, 120, GetColorFromName(L"LightBlue")},

      {L"¹èÅ͸®", L"¹èÅ͸® ³²Àº ¿ë·®°ú ½Ã°£, ÃæÀü »óŸ¦ Á¶»çÇÏ¿© ¸·´ë ±×·¡ÇÁ·Î ÃæÀü ºñÀ²À» Ç¥½ÃÇÑ´Ù.",

             L"Battery", true, 50, 120, GetColorFromName(L"LightSkyBlue")},

      {L"µð½ºÅ© »ç¿ë·®", L"Çϵå, SSD µîÀÇ ½ºÅ丮Áö ¿ë·®°ú »ç¿ë·®À» Ç¥½ÃÇÑ´Ù. À̵¿½Ä, ³×Æ®¿öÅ© µå¶óÀ̺굵 °°ÀÌ Ç¥½ÃÇÒ ¼ö ÀÖÀ¸¸ç ÃÖ´ë ¿ë·® ½ºÅ丮Áö¿¡ ´ëÇÑ »ó´ëÀûÀÎ ºñÀ²·Î Ç¥½ÃÇÑ´Ù.",

             L"DiskUsage", true, 50, 120, GetColorFromName(L"Wheat")},

      {L"°è»ê±â", L"´ÙÇ×½ÄÀ» °è»êÇÑ´Ù. »çÄ¢ ¿¬»ê°ú ´©½Â(^), °ýÈ£ ¿ì¼± ¼øÀ§ µîÀ» Áö¿øÇÑ´Ù. ÀÌÀü °è»ê½ÄÀ» ÄÞº¸ ¹Ú½º¿¡¼­ ´Ù½Ã ºÒ·¯¿Ã ¼ö ÀÖ°í °è»ê °á°ú¸¦ Ŭ¸³º¸µå·Î º¹»çÇÑ´Ù. ",

             L"Calc", true, 50, 120, GetColorFromName(L"Pink")},

      {L"À½¾Ç Àç»ý±â", L"MP3 À½¾ÇÀ» Àç»ýÇÑ´Ù. Ž»ö±â¿¡¼­ ÆÄÀÏÀ» µå·¡±×ÇÏ¿© À½¾ÇÀ» Ãß°¡ÇÏ¸ç »ó´ÜÀÇ ±×·ìÅÇÀ» »ç¿ëÇÏ¿© 4°³ÀÇ ±×·ì¿¡ À½¾Ç ¸ñ·ÏÀ» °¢°¢ °ü¸®ÇÑ´Ù. ÇÁ·Î±×·¡½º ¹Ù¸¦ µå·¡±×ÇÏ¿© ÀÓÀÇ À§Ä¡·Î À̵¿ÇÏ¸ç ·£´ý Àç»ý ¿É¼ÇÀ» Áö¿øÇÑ´Ù. PauseÅ°´Â Àü¿ª Àç»ý/Á¤Áö ´ÜÃàÅ°ÀÌ´Ù.",

             L"MusicPlayer", true, 150, 120, GetColorFromName(L"Gainsboro")},

      {L"À̹ÌÁö ½½¶óÀÌ´õ", L"À̹ÌÁö ¸ñ·ÏÀ» ÁÖ±âÀûÀ¸·Î ±³Ã¼ÇÏ¸ç º¸¿© ÁØ´Ù. ÆÄÀÏÀ» µå·¡±×ÇÏ¿© ¸ñ·Ï¿¡ Ãß°¡ÇÏ¸ç ¸¶¿ì½º ¿À¸¥ÂÊ ¹öÆ°À» ´­·¯ ³ªÅ¸³ª´Â Æ˾÷â¿¡¼­ ¼ø¼­ ¹× ½Ã°£À» ¼±ÅÃÇÑ´Ù.",

             L"ImageSlide", true, 100, 120, GetColorFromName(L"DarkGray")},

      {L"¸Þ¸ð", L"ÅؽºÆ® Çü½ÄÀÇ °£´ÜÇÑ ¸Þ¸ð¸¦ ±â·Ï ¹× ÆíÁýÇÑ´Ù. À§Á¬ È­¸é¿¡¼­ Á÷Á¢ ÆíÁý °¡´ÉÇÏ´Ù. ¿ì»ó´ÜÀÇ È®´ë ¹öÆ°À» Ŭ¸¯ÇÏ¿© Æ÷½ºÆ®ÀÕ Çü½ÄÀÇ º°µµÀÇ ¸Þ¸ðâÀ¸·Î ¿­¾î ÆíÁýÇÒ ¼ö ÀÖÀ¸¸ç °¢ ¸Þ¸ðÀÇ »ö»ó, ±Û²Ã µîÀ» ¼±ÅÃÇÒ ¼ö ÀÖ´Ù.",

             L"Memo", true, 150, 150, GetColorFromName(L"Ivory")},

      {L"³¯Â¥ ¼¼±â", L"ƯÁ¤ ³¯Â¥ ÀÌÈÄ °æ°ú ½Ã°£ ¶Ç´Â ƯÁ¤ ³¯Â¥±îÁö ³²Àº ½Ã°£À» º¸¿© ÁÝ´Ï´Ù. ¿¹¸¦ µé¾î ±Ý¿¬ 12ÀÏ°, Á¦´ë 625ÀÏ ÀüÀÇ ½Ã°£ Á¤º¸¸¦ º¸¿© ÁØ´Ù. ÀÏ, ½Ã, ºÐ±îÁö »ó¼¼ÇÏ°Ô º¼ ¼ö ÀÖ´Ù. ",

             L"Dday", true, 80, 120, GetColorFromName(L"SpringGreen")},

      {L"", L"", L"", false, 0, 0, RGB(0, 0, 0)},

};

 

STidgetInfo arTidgetInfo[] = {

      {L"LCD Å×½ºÆ®", L"LCD ¾×Á¤À» Á¡°ËÇÕ´Ï´Ù. »ö»ó, ¸ð´ÏÅ͸¦ ´ÜÃàÅ°·Î º¯°æÇÏ¸ç ¾Ö´Ï¸ÞÀ̼ÇÀ» ÅëÇØ ÀÜ»ó °Ë»ç¸¦ ¼öÇàÇÑ´Ù. EscÅ°·Î Á¾·áÇÑ´Ù.",

             L"LCDTest", false},

      {L"Ŭ¸³º¸µå º¯È¯±â", L"Ŭ¸³º¸µå¿¡ ÅؽºÆ® Æ÷¸Ë¸¸ ³²±â´Â Ctrl + Shift + C ´ÜÃàÅ°¸¦ Á¦°øÇÑ´Ù. ¼­½Ä¾øÀÌ ÅؽºÆ®¸¸ º¹»çÇÒ ¶§ »ç¿ëÇϸç ƼÁ¬À» Ŭ¸¯ÇÏ¿© µ¿ÀÛ ¿©ºÎ¸¦ Åä±ÛÇÑ´Ù.",

             L"TextClip", false},

      {L"»ö»ó Å×À̺í", L"Ç¥ÁØ »ö»óÇ¥¸¦ º¸¿©ÁÖ°í »ö»ó°ªÀ» º¹»çÇÑ´Ù. ¼¼°¡Áö Çü½ÄÀÇ »ö»óÇ¥¸¦ Áö¿øÇÏ¸ç µÎ °¡Áö »ö»óÀ» Â÷·Ê´ë·Î ¼±ÅÃÇÏ¿© ºñ±³ÇÑ´Ù.",

             L"ColorTable", false},

      {L"Ä¿¼­ À̵¿", L"ÁÖ±âÀûÀ¸·Î Ä¿¼­¸¦ À̵¿ÇÏ¿© È­¸é º¸È£±â µ¿ÀÛÀ» ¹æÁöÇÑ´Ù. Àå±â°£ÀÇ ÀÛ¾÷À» ¼öÇàÇÒ ¶§ ÄÄÇ»Å͸¦ °è¼Ó µ¿ÀÛ »óÅ·ΠÀ¯ÁöÇÑ´Ù.",

             L"MoveCursor", false},

      {L"À©µµ¿ì Å©±â ÃøÁ¤", L"Ç¥ÁØ ¸ð´ÏÅÍ Å©±âÀÇ ¸éÀûÀ» ½ÇÁ¦ À©µµ¿ì·Î È®ÀÎÇÑ´Ù. â Å©±â¸¦ ¹Ù²Ù¾î ÀÓÀÇ Å©±â¸¦ Çȼ¿ ´ÜÀ§·Î È®ÀÎÇÑ´Ù.",

             L"SizeMeter", false},

      {L"Å×Æ®¸®½º", L"½É½ÉÇ®ÀÌ Å×Æ®¸®½º °ÔÀÓÀÌ¸ç ´Ù¾çÇÑ Å©±â¸¦ Áö¿øÇÑ´Ù. ",

             L"Tetris", false},

      {L"ÂüÁ¶ À̹ÌÁö", L"´Ü ÇϳªÀÇ À̹ÌÁö¸¦ ¿øÇÏ´Â °÷¿¡ ¿øÇÏ´Â Å©±â·Î ½Å¼ÓÇÏ°Ô ¿­¾î È®ÀÎÇÑ´Ù. µî·ÏÇØ ³õÀº À̹ÌÁö¿Í À§Ä¡, Å©±â¸¦ À¯ÁöÇÏ¿© Ŭ¸¯ µ¿ÀÛÀ¸·Î Ç×»ó °°Àº À§Ä¡¿¡¼­ À̹ÌÁö¸¦ È®ÀÎÇÒ ¼ö ÀÖ´Ù.",

             L"OneImage", true},

      {L"ÆùÆ® ¿­°Å", L"¼³Ä¡µÇ¾î ÀÖ´Â ÆùÆ®ÀÇ ¸ñ·ÏÀ» º¸°í ¸ð¾çÀ» È®ÀÎÇϸç Ư¼ºÀ» Á¶»çÇÑ´Ù. ÆùÆ® »ý¼º Äڵ带 ÀÛ¼ºÇÏ¿© º¹»çÇÑ´Ù.",

             L"EnumFont", true},

      {L"½ºÆÄÀÌ", L"Ä¿¼­ À§Ä¡ÀÇ À©µµ¿ì ¼Ó¼º°ú À©µµ¿ì °èÃþ Á¶»çÇÑ´Ù. 1ÃÊ ÁÖ±â·Î µ¿ÀÛÇÏ¸ç ½ºÆÄÀÌâ ¾ÈÀ¸·Î µé¾î¿À¸é Á¶»ç¸¦ ÀϽà ÁßÁöÇÑ´Ù.",

             L"Spy", true},

      {L"", L"", L"", false},

};

 

¼³¸íÀÌ ¹Ý¸»·Î µÇ¾î ÀÖ´Â °ÍÀº Æò°¡ÆÇÀ̶ó ±×·¸´Ù. ÇÁ·ÎÆä¼Å³Î ¹öÀüÀ» ±¸¸ÅÇϸé Á» ´õ °ø¼ÕÇÑ Á¸À縻·Î ¹Ù²ð ¿¹Á¤ÀÌµÇ ¾ðÁ¦ À¯·á ¹öÀüÀ» ¹ßÇ¥ÇÒÁö´Â ¾Ë ¼ö ¾ø´Ù. ¼³¸íÀ» ÀÌ·¸°Ô ÆíÁýÇØ ³õ°í ´ëÈ­»óÀÚ¸¦ ¶ç¿ö º¸´Ï ¾Æ·¡ÂÊ¿¡ ÇÑÁÙ¸¸ º¸ÀδÙ. Auto Hscroll ½ºÅ¸ÀÏÀÌ Àû¿ëµÇ¾î À־ ±×·±µ¥ ÀÌ ½ºÅ¸ÀÏÀ» ²¨µµ ´Ù ¾È º¸À̱â´Â ¸¶Âù°¡ÁöÀÌ´Ù.

 

¼³¸í ¿¡µðÆ® ¹Ú½º¸¦ Á» ´õ ³Ð°í ³ô°Ô ³Ë³ËÇÏ°Ô ¿µ¿ªÀ» ÇÒ´çÇß´Ù. ÀÌ·± ¹ö±×´Â Å×½ºÆ®¸¦ ´ëÃæ Çß´Ù´Â ¶æÀ̸ç ÂÊÆȸ°µ¥ ¸±¸®Áî Àü¿¡¶óµµ ¼öÁ¤ÇÑ °ÍÀÌ Âü ´ÙÇàÀÌ´Ù.  Â÷ÈÄ À̹ÌÁö±îÁö ³Ö¾î ´õ »ó¼¼ÇÑ ¼³¸íÀ» ³Ö¾î ¸Å´º¾óÀ» ´ë½ÅÇÒ °èȹÀÌ´Ù.

´ÙÀ½Àº ±âº» Á¬À» ¼±ÅÃÇÑ´Ù. ¸¸µå´Â Á·Á· ÀÏ´Ü µ¿ÀÛÀ» È®ÀÎÇØ¾ß ÇÏ´Ï ¸ðµç Á¬À» ´Ù ±âº»¿¡ Æ÷ÇÔ½ÃÄÑ µÎ¾ú´Âµ¥ ´©±¸³ª ´Ù ±×·¸°Ô ¾²´Â °ÍÀº ¾Æ´Ï´Ù. ÀÚÁÖ »ç¿ëÇÏ°í ´©±¸¿¡°Ô³ª ÇÊ¿äÇÒ °Å °°Àº ¸î °¡Áö Á¬¸¸ ²¨³» ³õ°í ³ª¸ÓÁö´Â »ç¿ëÀÚ°¡ ÇÊ¿äÇÒ ¶§ ¼±ÅÃÇÏ´Â °ÍÀÌ ¹Ù¶÷Á÷ÇÏ´Ù. ¶Ç Ãʱ⠼ø¼­µµ Àǹ̰¡ Àִµ¥ ºñ½ÁÇÑ °Í³¢¸® ¸ð¾Æ µÎ´Â °ÍÀÌ ÁÁ´Ù. OnCreateÀÇ µðÆúÆ® ¼¼ÆÃÀ» ´ÙÀ½°ú °°ÀÌ Á¶Á¤ÇÑ´Ù.

 

    vertThick = setting.get(L"main", L"vertThick", 220);

    horzThick = setting.get(L"main", L"horzThick", 160);

    ....

    if (widget_num == 0) {

        // À§Á¬ ¹è¿­ ÃʱâÈ­

        pWidget = CWidget::CreateDefaultObject(L"Clock"); arWidget.push_back(pWidget);

        pWidget = CWidget::CreateDefaultObject(L"CpuUsage"); arWidget.push_back(pWidget);

        pWidget = CWidget::CreateDefaultObject(L"MemUsage"); arWidget.push_back(pWidget);

        pWidget = CWidget::CreateDefaultObject(L"Battery");

        pWidget->span = true;

        arWidget.push_back(pWidget);

        pWidget = CWidget::CreateDefaultObject(L"Calc"); arWidget.push_back(pWidget);

        pWidget = CWidget::CreateDefaultObject(L"MusicPlayer"); arWidget.push_back(pWidget);

        pWidget = CWidget::CreateDefaultObject(L"ImageSlide"); arWidget.push_back(pWidget);

 

        // ƼÁ¬ ¹è¿­ ÃʱâÈ­

        pTidget = CTidget::CreateDefaultObject(L"LCDTest"); arTidget.push_back(pTidget);

        pTidget = CTidget::CreateDefaultObject(L"ColorTable"); arTidget.push_back(pTidget);

        pTidget = CTidget::CreateDefaultObject(L"TextClip"); arTidget.push_back(pTidget);

        pTidget = CTidget::CreateDefaultObject(L"MoveCursor"); arTidget.push_back(pTidget);

        pTidget = CTidget::CreateDefaultObject(L"OneImage"); arTidget.push_back(pTidget);

        pTidget = CTidget::CreateDefaultObject(L"EnumFont"); arTidget.push_back(pTidget);

                  pTidget = CTidget::CreateDefaultObject(L"Spy"); arTidget.push_back(pTidget);

 

Áø¹ý º¯È¯±â, µð½ºÅ© ¿ë·®, ¸Þ¸ð, Dday À§Á¬Àº ÀÏ´Ü ¼û°å´Ù. °³¹ßÀÚ°¡ ÁÖ·Î »ç¿ëÇÏ´Â ±â´ÉÀ̰ųª Å©°Ô °ü½ÉÀ» °®Áö ¾Ê´Â Á¤º¸ ¶Ç´Â ´Ù¸¥ ´ëü ÇÁ·Î±×·¥ÀÌ ÀÖ´Â °æ¿ìÀÌ´Ù. ¸Þ¸ð¸®¿Í ¹èÅ͸®´Â ¼¿ º´ÇÕÇÑ »óÅ·Π¸±¸®ÁîÇÑ´Ù. ƼÁ¬Àº ÀÚ¸®¸¦ ¸¹ÀÌ Â÷ÁöÇÏÁö ¾ÊÀ¸¹Ç·Î ´ëºÎºÐ Ç¥½ÃÇ쵂 Å×½ºÆ®¸®¿Í SizeMeter µÎ °³¸¸ ¼û±ä´Ù.

¹°·Ð Ãʱ⠼³Á¤»ó ¼û±â´Â °Í »ÓÀÌ¸ç »ç¿ëÀÚ°¡ ¾ðÁ¦µçÁö ´Ù½Ã ²¨³» »ç¿ëÇÒ ¼ö ÀÖ´Ù. ±×·¯³ª °³¹ßÀÚ ÀÔÀå¿¡¼­ ¾Ö½á ¸¸µé¾î ³ù´Âµ¥ óÀ½¿¡ ¾È º¸ÀÌ¸é ±â´ÉÀÌ Á¸Àç ÀÚü°¡ º¸ÀÌÁö ¾Ê¾Æ Á» ¾ï¿ïÇÑ ¸éÀÌ ÀÖ´Ù. ±×·¸´Ù°í ³Ê¹« ´Ù ²ôÁý¾î ³» ³õÀ¸¸é ÁöÀúºÐÇØ Áö´Â °¨ÀÌ ÀÖÀ¸´Ï Àû´çÇÑ ¼öÁØ¿¡¼­ ÀÚÀçÇØ¾ß ÇÑ´Ù.

À§Á¬ ¸ñ·Ï°ú ÇÔ²² Ãʱâ Æø°ú ³ôÀ̵µ Á¶Á¤Çß´Ù. ¿ø·¡´Â 200, 120À̾ú´Âµ¥ ¼öÁ÷À¸·Î ³ª¿­½Ã ¸Þ¸ð¸®¿Í ¹èÅ͸®¸¦ º´ÇÕ Ç¥½ÃÈ÷±â¿¡´Â Á¼¾Æ 20Çȼ¿ ´õ ´Ã·È´Ù. ¼öÆòµµ 120Àº ³Ê¹« ³·Àº °¨ÀÌ ÀÖ¾î ³ôÀ̸¦ ¾à°£ ³ô¿´´Ù. µðÆúÆ® ¹èÄ¡¸¦ º¸·Á¸é INI ÆÄÀÏÀ» Áö¿î ÈÄ ´Ù½Ã ½ÃÀÛÇØ¾ß ÇÑ´Ù.

 

°¢ À§Á¬ÀÇ µðÆúÆ® ³ôÀ̳ª ¹è°æ»ö»ó µîµµ Á¶Á¤ÇÒ ÇÊ¿ä°¡ ÀÖÁö¸¸ Áö±Ý ¹èÄ¡ »óÅ·εµ ±×¸® ³ª»Û °Í °°Áö´Â ¾Ê´Ù. ´çºÐ°£ ÀÌ ±¸¼ºÀ¸·Î ¸±¸®ÁîÇϱâ·Î ÇÑ´Ù.

¹èÆ÷ ¹æ¹ý

¿©±â±îÁö °³¹ßÇÑ ¹öÀüÀÌ ±³À°¿ë ÇÁ·ÎÁ§Æ® À̸§À¸·Î´Â SoEnty09ÀÌÁö¸¸ °ø½Ä ¹öÀüÀº 0.5ÀÌ´Ù. Ãʱ⿡ ºñÇØ ¼Ò½ºµµ ¸¹ÀÌ Á¤¸®µÇ¾ú°í ±â´Éµµ dzºÎÇØÁ³Áö¸¸ ÀÌÁ¦ °Ü¿ì 1.0±îÁö Àý¹Ý Á¤µµ ¿Ô´Ù´Â ¾ê±âÀÌ´Ù. 0.5 ¹öÀüÀÇ ÃÑ ¼Ò½º ÁÙ¼ö´Â 9607ÁÙÀÌ¸ç ¸±¸®Áî ½ÇÇà ÆÄÀÏÀÇ Å©±â´Â 350KÀÌ´Ù.

20ÀÏÀü¿¡ ¸±¸®ÁîÇÑ 0.4 ¹öÀü¿¡ ºñÇØ ¼Ò½º´Â 1000ÁÙ ´Ã¾ú°í ½ÇÇà ÆÄÀÏÀº 55K ´Ã¾ú´Ù. ¾ÆÁ÷ ¸¸ ÁÙÀÌ ¾ÈµÇ´Âµ¥ ±â´É¿¡ ºñÇؼ­ ¼Ò½º´Â ´ë´ÜÈ÷ ¾ÐÃàÀûÀÎ ¼ÀÀÌ´Ù. ÀÌÁ¦ ÀÌ ÆÄÀÏÀ» ¸±¸®ÁîÇؼ­ À¥¿¡ ¹ßÇ¥ÇÏ¸é µÈ´Ù. ´Üµ¶ ½ÇÇà ÆÄÀÏÀ̾ ±¸¼º ÆÄÀÏ ¾øÀÌ exe¸¸ ¿Ã¸®¸é µÈ´Ù. ±×·¯³ª ¾ÆÁÖ ½É°¢ÇÑ ¹®Á¦°¡ Çϳª ´õ ÀÖ´Ù.

SoEnty.exe¸¦ ¾ÐÃàÇÏ¿© À¥¿¡ ¿Ã¸° ÈÄ ´Ù¿î·Îµå ¹Þ¾Æ ¾ÐÃàÀ» Ǭ´Ù. ´Ù¿î·Îµå Á÷ÈĺÎÅÍ µðÆæ´õ°¡ ¹ÙÀÌ·¯½º·Î ÀνÄÇÏ¿© º¸¾È °æ°íâÀ» ¶ç¿ì¸ç ½ÇÁ¦ ¹ÙÀÌ·¯½º°¡ ÀÖ´Ù°í º¸°íÇÑ´Ù. ÀÌÀü ¹öÀü¿¡´Â ÆÄÀÏÀ» ¾Æ¿¹ ÀÚµ¿ »èÁ¦ÇØ ¹ö¸®±âµµ Çߴµ¥ 0.5 ¹öÀüÀº ´ÙÇàÈ÷ ±×·¯Áö´Â ¾Ê´Â´Ù. °­Á¦ ½ÇÇàÇÏ¸é ½º¸¶Æ® ½ºÅ©¸°ÀÌ °Ô½ÃÀÚ¸¦ ¾Ë ¼ö ¾ø´Ù´Â °æ°í¸¦ ¶ç¿î´Ù.

 

ÀÌ °æ°í¸¦ ¹«½ÃÇÏ°í °­Á¦·Î ½ÇÇàÇÏ¸é ½ÇÇàÀº °¡´ÉÇÏ´Ù. ±×·¯³ª ¸Å¹ø ½ÇÇàÇÒ ¶§¸¶´Ù ´Ù¿î·Îµå ¹ÞÀº°Å´Ï À§ÇèÇÏ´Ù´Â °æ°í°¡ ¶á´Ù. ³»°¡ ³ª»Û ÁþÀ» ÇÒ »ç¶÷Àº ¾Æ´ÏÁö¸¸ »çÀÌ´×À» ÇÏÁö ¾ÊÀº Ãâó ºÒ¸íÀÇ ÇÁ·Î±×·¥À» °æ°íÇÏ´Â µ¿ÀÛÀº ÇÕ´çÇÏ´Ù. ±×·¯³ª ºñÁÖ¾ó ½ºÆ©µð¿À·Î ¸¸µç ÇÁ·Î±×·¥À» ¹ÙÀÌ·¯½º·Î Áø´ÜÇÏ´Â °ÍÀº ¹®Á¦°¡ ÀÖ´Ù.

¶È°°Àº ¹®Á¦¸¦ °ÞÀº »ç¶÷ÀÌ ºÐ¸í ÀÖÀ» °ÍÀ̹ǷΠ±¸±Û¸µÀ» ÇØ ºÃ´Ù. ºñÁÖ¾ó ½ºÆ©µð¿À 2019·Î Hello World¸¸ ¸¸µé¾îµµ  Trojan:Win32/Fuery.C!cl ·Î Áø´ÜÇÏ°í ½ÇÇàÀ» ±ÝÁöÇÑ´Ù. °°Àº ȸ»ç¿¡¼­ ¸¸µç ÇÁ·Î±×·¥Àε¥ ¼³¸¶ ÀÌ Á¤µµ Å×½ºÆ®µµ ¾ÈÇÏ°í ¹ßÇ¥¸¦ ÇßÀ»±î ½ÍÀºµ¥ ¸¶ÀÌÅ©·Î¼ÒÇÁÆ®ÀÇ °ø½ÄÀûÀÎ ´äº¯Àº ´ÙÀ½°ú °°´Ù.

¹ÙÀÌ·¯½º·Î ¿ÀÀÎ ¹Þ´Â°Ô Á¤»óÀûÀÌ´Ï ´ë»ó Æú´õ¸¦ ¿¹¿Ü ¼³Á¤Çϸé ÄÄÆÄÀÏÇÒ ¼ö ÀÖ´Ù´Â °ÍÀÌ´Ù. ÀÌ°É °ú¿¬ ´äº¯À̶ó°í ¿Ã¸° °ÍÀÏ±î ½Í´Ù. ÄÄÆÄÀÏÀÌ ±Ã±ØÀÇ ¸ñÀûÀÌ ¾Æ´Ï¶ó ¹èÆ÷¸¦ ÇØ¾ß »ç¿ëÀÚ°¡ ¾µ ¼ö ÀÖ´Ù. ±×·³ ¸ðµç »ç¿ëÀÚ°¡ ¿¹¿Ü ¼³Á¤À» ÇØ¾ß ºñÁÖ¾ó ½ºÆ©µð¿À·Î ¸¸µç ÇÁ·Î±×·¥À» ½ÇÇàÇÒ ¼ö Àִ°¡?

 ÇÁ·ÎÁ§Æ®ÀÇ ¿É¼ÇÀ» Á¶Á¤Ç϶ó°Å³ª Ãâó¸¦ ¹àÈ÷´Â »çÀÌ´×À» Çضó´Â ´äº¯À» ±â´ëÇߴµ¥ ±×·¸Áö ¸øÇÏ´Ù. ½Ç½Ã°£ °Ë»ç¸¦ Àá½Ã ²ô°Å³ª ¾Æ¿¹ µðÆæ´õ¸¦ »ç¿ë ¾ÈÇÔÀ¸·Î ¼³Á¤Ç϶ó´Â ´äº¯µµ ÀÖ°í SDL ¿É¼ÇÀ» ÄÑ¾ß ÇÑ´Ù´Â ´äº¯µµ Àִµ¥ ´Ù Á¤È®ÇÑ ÇØ°á ¹æ¹ýÀÌ ¾Æ´Ï´Ù. Â÷¶ó¸® µðÆæ´õÀÇ ¹ö±×À̸ç ÇØ°áÁßÀ̶ó´Â ¾ê±â°¡ ´õ Çö½ÇÀûÀÌ´Ù.

Ȥ½Ã ºñÁÖ¾ó ½ºÆ©µð¿À°¡ Á¤Ç°ÀÌ ¾Æ´Ñ ±³À°¿ë Ä¿¹Â´ÏƼ ¹öÀüÀ̾ »çÀÌ´× ±â´ÉÀÌ ¾Æ¿¹ ¾ø°Å³ª ÇнÀÀ» ¸ñÀûÀ¸·Î ÇÑ ÄÚµù¸¸ ÇÒ ¼ö ÀÖÀ» »Ó ¹èÆ÷ °¡´ÉÇÑ ÇÁ·Î±×·¥Àº ¸±¸®Áî ¸øÇÑ´Ù¸é ÀÌÇØÇÒ ¼ö ÀÖ´Ù. Á» ¾ß¼ÓÇÏÁö¸¸ ¿ø·¡ Ä¿¹Â´ÏƼ ¹öÀüÀÌ ¿¬±¸¸¦ À§ÇØ °ø°³ÇÑ °ÍÀ̹ǷΠ±×·² ¼ö´Â ÀÖ´Ù. ¹èÆ÷´Â ¾Æ¸¶µµ »çÀÌ´×ÀÇ ¹®Á¦ÀÎ °Í °°Àºµ¥ Ãâó¸¦ ¹àÈ÷Áö ¾Ê¾ÒÀ¸´Ï ÀǽÉÀ» ¹Þ´Â °ÍÀÌ ´ç¿¬ÇÏ´Ù.

putty.exe °°Àº Á¤»óÀûÀÎ ÇÁ·Î±×·¥µµ À¥À» °æÀ¯ÇÏ¿© ´Ù¿î·Îµå ¹ÞÀ¸´Ï À§ÇèÇÏ´Ù´Â °æ°í°¡ ¶á´Ù. Ȥ½Ã³ª ¹öÀü»óÀÇ ¹®Á¦Àΰ¡ ½Í¾î 10³âÀ̳ª ´õ Áö³­ ºñÁÖ¾ó ½ºÆ©µð¿À 2010À» ¼³Ä¡ÇÏ¿© Hello World¸¦ ¸¸µç ÈÄ À¥À» ÅëÇØ ¹èÆ÷ÇØ º¸´Ï ÀÌ ¶ÇÇÑ ¶È°°Àº ¹®Á¦°¡ ¹ß»ýÇß´Ù. ¹ÙÀÌ·¯½º³ª ·£¼¶¿þ¾î°¡ â±ÈÇÏ´Â ¼¼»óÀÌ´Ï Ãâó°¡ ºÐ¸íÄ¡ ¾ÊÀº ½ÇÇà ÆÄÀÏÀ» ¹èÆ÷ÇÏÁö ¸øÇϵµ·Ï ¸·´Â °Íµµ ÀÌÇØ´Â °£´Ù.

°á±¹Àº »çÀÌ´×À» È®½ÇÈ÷ ÇÏ¿© º¸¾È»óÀÇ ¹®Á¦¸¦ ÇØ°áÇؼ­ ¹èÆ÷ÇÏ´Â ¼ö¹Û¿¡ ¾øÀ» °Å °°´Ù. ¾ÆÁ÷ 1.0µµ ¸±¸®ÁîÇÏÁö ¸øÇß°í Áö±ÝÀº ¿¬±¸ ¹öÀüÀ̹ǷΠ´çºÐ°£Àº ¼Ò½º¿Í ½ÇÇà ÆÄÀÏÀ» ºÐ¸®Çؼ­ ¹èÆ÷ÇÏ´Â ¹æ¹ýÀ» »ç¿ëÇØ¾ß ÇÒ °Í °°´Ù.

ÀÌÈÄÀÇ ÀÛ¾÷ ¸ñ·Ï

SoEnty Á¦ÀÛ °­Á´ ¿©±â¼­ Àϴܶô ÁþÁö¸¸ SoEnty ÇÁ·ÎÁ§Æ® ÀÚü´Â ¾ÆÁ÷µµ ÇÑÂü °³¹ßÁßÀÌ´Ù. ¾ÕÀ¸·Î ´õ Ãß°¡ÇÒ À§Á¬À̳ª ƼÁ¬µµ ¸¹°í ÇÁ·Î±×·¥ Àü¹ÝÀûÀ¸·Î °³¼±ÇÒ ¸ñ·Ïµµ ¸¹´Ù. ¾ðÁ¦ ÇÒÁö´Â ¸ð¸£°ÚÁö¸¸ ´ÙÀ½ ÀÛ¾÷À» ÀÏ´Ü Á¤¸®´Â ÇØ µÎ°í ½Ã°£ÀÌ ³ª´Â´ë·Î Çϳª¾¿ ¼ø¼­´ë·Î ÀÛ¾÷ÇÒ °ÍÀδÙ.

 

Ãß°¡ÇÒ À§Á¬

·Ðó - Ÿ½ºÅ©¹ÙÀÇ ºü¸¥ ½ÇÇà°ú °°Àº ·Ðó ÀÛ¼º. 16, 32ÀÇ ¾ÆÀÌÄÜÀ¸·Î µî·ÏÇÏ°í Ŭ¸¯½Ã ½ÇÇàÇÑ´Ù.

³«¼­ - ¹ÙÅÁ È­¸éÀÇ ÀÓÀÇ À§Ä¡¿¡ µµÇüÀ̳ª °î¼± µîÀ» ±×·Á µ¿·á¿Í ȸÀÇÇÒ ¼ö ÀÖ´Ù.

¿¬·Â - À½·Â ´Þ·ÂÀ» Áö¿øÇÏ¸ç ±â³äÀÏÀ» µî·ÏÇØ ³õÀ¸¸é º¸¿© ÁØ´Ù. ½ºÄÉÁÙ °ü¸®±îÁö´Â ÇÏÁö ¾Ê´Â´Ù.

ĸó - À©µµ¿ì³ª ÀÏÁ¤ ¿µ¿ªÀ» ÀϽÃÀûÀ¸·Î ĸóÇÏ¿© À̹ÌÁöÈ­ÇÑ´Ù. µÎ È­¸éÀ» µ¿½Ã¿¡ º¼ ¶§ Æí¸®ÇÏ´Ù.

ÇÖÅ° - ƯÁ¤ ÇÖÅ°¿¡ Ä¿½ºÅÒ µ¿ÀÛÀ» Á¤ÀÇÇÏ°í ÇÊ¿äÇÒ ¶§¸¸ ¼±ÅÃÀûÀ¸·Î »ç¿ëÇÑ´Ù.

 

Ãß°¡ÇÒ Æ¼Á¬

FolderSize - ÁöÁ¤ µð·ºÅ丮 ÀÌÇÏÀÇ ¼­ºêµð·ºÅ丮 °¢°¢¿¡ ´ëÇÑ Å©±â Á¶»ç. ´©°¡ ¿ë·®À» ¸¹ÀÌ ¸Ô´ÂÁö Á¡°ËÇÑ´Ù.

FindSameFile - Áߺ¹ ÆÄÀÏ Ã£±â. À̸§À̳ª Å©±â ¶Ç´Â °£´ÜÇÑ Áö¹®À¸·Î µ¿ÀÏ ÆÄÀÏÀ» ã¾Æ³» °ü¸®ÇÑ´Ù.

½ºÅé ¿ÍÄ¡ - Start, Stop, Lap µîÀÇ ±â´ÉÀ» Á¦°øÇϸç Àü¿ª ÇÖÅ°¸¦ Á¤ÀÇÇÏ¿© Æ÷Ä¿½º¾øÀ̵µ ½Ã°£ ÃøÁ¤ °¡´É

¼Ò½º Ä«¿îÅÍ - µð·ºÅ丮¿Í ´ë»ó È®ÀåÀÚ¸¦ µî·ÏÇØ µÎ°í ÃÑ ÁÙ¼ö¸¦ Áï½Ã Á¶»çÇÑ´Ù. »ó¼¼ Á¤º¸´Â º°µµ âÀ¸·Î È®ÀÎ

ŸÀÚ ¿¬½À - ½É½ÉÇÒ ¶§ Å°º¸µå·Î ŸÀÚ ¿¬½ÀÀ» ¼öÇàÇÑ´Ù.

 

°¢ Á¬ °³¼± »çÇ×

¸Þ¸ð - ¼­½Ä ÀÖ´Â ¹®¼­¸¦ ÆíÁýÇÏ´Â ±â´É Á¦°ø. ¿öµå ÄÁÆ®·ÑÀ» µµÀÔÇØ¾ß ÇÑ´Ù.

À̹ÌÁö ºä¾î - »ó´ÜÀ¸·Î À̵¿½Ã ¸¶¿ì½º·Î âÀ» ´ÝÀ» ¼ö ÀÖ´Â ±â´É Á¦°ø. ÀÌÀü/´ÙÀ½ À̹ÌÁö À̵¿ ±â´É Á¦°ø

SizeMeter - ¸ð´ÏÅÍ Çػ󵵸¦ °í·ÁÇÑ ½ÇÁ¦ ±æÀÌ Ç¥½Ã

À½¾Ç Àç»ý±â - ÀÌÀü, ´ÙÀ½ °î¿¡ ´ëÇؼ­µµ Àü¿ª ÇÖÅ° µî·Ï ¹× ¼±Åà °¡´É. ¸ñ·Ï¿¡¼­ ÆÄÀÏ Á¦°Å ¹× »èÁ¦

»ö»óÇ¥ - Å°º¸µå·Îµµ »óÇÏÁ¿ì À̵¿ °¡´ÉÇÏ°Ô ÇÒ °Í

½ºÆÄÀÌ - À©µµ¿ì °èÃþÀ» ±×·¡ÇÈÀ¸·Î º¸¿©ÁÖ°í °èÃþ°£ À̵¿

À̹ÌÁö ½½¶óÀÌ´õ - ¸®½ºÆ® ¹Ú½ºÀÇ Ç׸ñÀ» µå·¡±×ÇÏ¿© ¼ø¼­ Á¶Á¤.

 

ÀüüÀûÀÎ ±â´É

¾Û¹Ù Çü½ÄÀ¸·Î º®¿¡ µµÅ·½ÃŲ´Ù.

°¢ Á¬ ¿É¼Çâ È£Ãâ ¹æ¹ýÀÌ ºñÁ÷°üÀûÀ̾ º°µµÀÇ UI¸¦ ¸¸µé°í È®ÀÎ, Ãë¼Ò ¹öÆ°À» ¹èÄ¡ÇÑ´Ù.

À§Á¬ Å©±â Á¶Á¤½Ã ±»ÀÌ ½Ç½Ã°£À¸·Î Á¶Á¤ÇÏÁö ¸»°í À½¿µ¸¸ ±×¸®´Â ¹æ¹ý °í·ÁÇÒ °Í

Á¬ ÀÎÅÍÆäÀ̽º¸¦ Ç¥ÁØÈ­ÇÏ¿© Ä¿½ºÅÒ DLL·Î ÀÛ¼º ¹× ±â´É È®Àå °¡´ÉÅä·ÏÇÏ°í API °ø°³

¾ÆÀÌÄÜ ¹× ºñÆ®¸Ê ¹öÆ° µðÀÚÀÎ ÀÏ°ý Á¤ºñ. Àü¹® µðÀÚÀ̳ÊÀÇ µµ¿òÀÌ ÇÊ¿äÇÔ

Æ˾÷â À§ÂÊÀÇ Èò»ö ¶ì Á¦°Å ¹æ¹ý ¿¬±¸

1.0 ÀÌÀü¿¡ »çÀÌ´× ¹× º¸¾È ¹®Á¦ ÇØ°áÇÏ°í Á¤½Ä ¹èÆ÷

 

Áö±Ý ´çÀå »ý°¢³ª´Â °Í¸¸ Çصµ ÀÌ Á¤µµÀε¥ ÀÌ ±â´ÉÀ» ´Ù ¸¸µé°í ³ª¸é ¶Ç À̸¸Å­ ÇÒ ÀÏÀÌ ½×ÀÏ °Í °°´Ù. ÀÏ´Ü ³»°¡ ½Ç¿ëÀûÀ¸·Î »ç¿ëÇÏ°í ÀÖ°í ¸î¸î ÁöÀεµ »ç¿ëÀÚ°¡ ÀÖ¾î Ãß°¡ ±â´É¿¡ ´ëÇÑ ¿ä±¸´Â Áö¼ÓÀûÀ¸·Î ³ª¿Ã °ÍÀÌ´Ù. µðÀÚÀÎÀÌ Á» ¾Æ¸¶Ãß¾îÀûÀÌÁö¸¸ ¸î¸î ±â´ÉÀº ±×·¡µµ ²Ï³ª ¾µ¸¸ÇÑ °Í °°¾Æ ¸¸Á·½º·´´Ù.

°­Á¸¦ ¸¶Ä¡¸ç

ÀÌ»óÀ¸·Î ¿©±â±îÁö SoEnty Á¦ÀÛ °­Á¸¦ Á¾·áÇÑ´Ù. SoEnty 0.4 ¹öÀü±îÁö´Â È¥ÀÚ ¸¸µé´Ù°¡ ÀÏÁ¤ ¾çÀÌ µÇ¾ú´Ù ½Í¾î ¼Ò½º Á¤¸® ¹× ±â¼ú °øÀ¯ Â÷¿ø¿¡¼­ 0.5 ¹öÀüÀ» »õ·Î ¸¸µé¸é¼­ ±× Á¦ÀÛ ÀýÂ÷¸¦ SoEnty01 ~ SoEnty09±îÁö 9°³ÀÇ ÇÁ·ÎÁ§Æ®¸¦ ´Ü°èº°·Î ÀÛ¼ºÇß´Ù. ÃÖÁ¾ SoEnty09°¡ °­ÁÂ¿ë ¿¹Á¦ÀÇ ¸¶Áö¸·À̸ç ÀÌ ¹öÀüÀÌ SoEnty 0.5¿¡ ÇØ´çÇÑ´Ù.

¾ÆÁ÷µµ °¥ ±æÀº ¸ÖÁö¸¸ 0.5 ¹öÀü Á¤µµ¸é ±×·¡µµ Å« ƲÀº ´Ù Àâ¾ÒÀ¸¸ç Áß¿äÇÑ ±â¼úÀû Åä´ë´Â À常Çß´Ù°í ÀÚÆòÇÑ´Ù. ÀÌÈÄ¿¡µµ °³¹ßÀº °è¼Ó ÁøÇàÇÒ °ÍÀÌ°í Æ´Æ´ÀÌ À§Á¬°ú ƼÁ¬À» ¸¸µé°ÚÁö¸¸ ÁúÀûÀ¸·Î ¹Ù²î´Â ºÎºÐÀº Å©°Ô ¾øÀ» °ÍÀÌ´Ù. ÀÌ·± ºÎºÐ¿¡ ´ëÇؼ­´Â ±»ÀÌ °­Á¾¿À̳ª ¾µ ÇÊ¿ä°¡ ¾øÀ¸´Ï ¼Ò½º¸¸ °ø°³Çϱâ·Î ÇÑ´Ù.

ÀÌ °­ÁÂÀÇ ¸ñÀûÀº ÀÌ·± ÇÁ·Î±×·¥À» ¸¸µå´Âµ¥ ¾î¶² ±â¼úÀÌ »ç¿ëµÇ¸ç ¹» ´õ °øºÎÇØ¾ß ÇÏ´ÂÁö¸¦ °øÀ¯Çϱâ À§Çؼ­ÀÌ´Ù. ¹®¹ýÀ» ¹è¿ü´õ¶óµµ ½ÇÁ¦ ÇÁ·ÎÁ§Æ®¸¦ ÇØ º¼ ±âȸ°¡ ¾ø´Â »õ³»±â °³¹ßÀÚ¿¡°Ô Á¶±ÝÀ̳ª¸¶ ¹®¹ýÀ» Àû¿ëÇØ º¸°í ½Ç¹«¸¦ ÀÍÈú ¼ö ÀÖ´Â ±âȸ°¡ µÇ±â¸¦ ¹Ù¶õ´Ù. ºñ·Ï 0.5 ¹öÀüÀÌ Àý¹Ý Á¤µµÀÌÁö¸¸ ÀÌ Á¤µµ¸é °­ÁÂÀÇ ¸ñÀûÀº ÃæºÐÈ÷ ÀÌ·é °Í °°´Ù.

SoEnty ÇÁ·ÎÁ§Æ®´Â 21³â 8¿ù 1ÀÏ °³¹ßÀ» ½ÃÀÛÇÏ¿© 9¿ù 26ÀϱîÁö ±Ù µÎ ´Þ¿¡ °ÉÃÄ Åð±Ù ÈÄ, ÁÖ¸»¿¡ Æ´Æ´ÀÌ ÀÛ¾÷ÇÏ¿´´Ù. ȸ»çÀϵµ ¹Ù»Ûµ¥ Åð±Ù ÈÄ¿¡µµ »õº®±îÁö Äڵ带 Â¥´Â°Ô Á» ºÒ½ÖÇØ º¸ÀÏ ¼ö´Â ÀÖ°ÚÀ¸³ª °³¹ßÀÚ¿¡°Ô ÄÚµù¸¸Å­ Àç¹ÌÀÖ´Â ³îÀÌ°¡ ¾ø´Â °Íµµ »ç½ÇÀÌ´Ù. ½Ã°£¿¡ ¦i±â¸ç ÀáÀ» ÁÙÀÌ°í ÇÇ°ï¿¡ ¿¾îµµ ³»°¡ ¸¸µç ±â´ÉÀÌ È­¸é¿¡ Á¡Á¡ Çϳª¾¿ ¸ð½ÀÀ» µå·¯³»´Â Èñ¿­ÀÌ ÀÖ´Ù.

°³¹ßµµ ½Å³ª´Â ÀÏÀÌÁö¸¸ °³¹ßÇÑ Äڵ带 °­Á·Π¿Å±â´Â Àϵµ º¸¶÷Âù ÀÏÀÌ´Ù. ±×·¯³ª °­Á´ °³¹ß°ú´Â ´Þ¸® ³²¿¡°Ô ÀÐÈú ¸ñÀûÀ¸·Î ¾²´Â °ÍÀÌ´Ù º¸´Ï ½Å°æ¾µ °ÍÀÌ ¸¹°í ¿ø°í·®ÀÌ ¸¹´Ù º¸´Ï ¾öû³­ ½Ã°£°ú ³ë·ÂÀÌ ¼Ò¸ðµÈ´Ù. ÀÌ °­Á¸¦ ¾²´Âµ¥ 2021³â 9¿ù 18ÀϺÎÅÍ 26ÀϱîÁö 9ÀÏ°£ÀÇ Ãß¼® Ȳ±Ý ¿¬ÈÞµ¿¾È °íÇâ¿¡µµ ¾È°¡°í ¿ÜÃâµµ ÇÏÁö ¾Ê°í ¹æ¿¡ Ʋ¾î¹ÚÇô ¹ã³·À¸·Î ¿ÂÀüÈ÷ ´Ù Çå³³Çß´Ù.

Á÷ÀåÀÎÀÌ ÀÌ Á¤µµ ½Ã°£À» ³¾ ¼ö ÀÖ´Â ±âȸ´Â °ÅÀÇ ¾øÀ¸¸ç ¼ÖÁ÷È÷ Èûµé¾ú´Ù. ±×¸²µµ Á» ¸¹ÀÌ ³Ö°í ¼¼ºÎ Äڵ忡 ´ëÇؼ­µµ »ó¼¼ÇÑ ¼³¸íÀ» ´õ ´Þ°í ½ÍÁö¸¸ ÁÖ¾îÁø ½Ã°£ÀÌ ¸¹Áö ¾Ê´Ù º¸´Ï ±×·² ¼ö°¡ ¾ø¾ú´Ù. ¾ÕÀ¸·Î ÀÌ·± ±âȸ°¡ ´õ ¿ÀÁöµµ ¾ÊÀ» °ÍÀÌ°í ¿Â´Ù°í Çصµ ´Ù¸¥ ÇÒ Àϵµ ¸¹¾Æ ´çºÐ°£Àº °­Á¸¦ ¾÷µ¥ÀÌÆ®Çϱ⠾î·Æ´Ù.

½Ã°£ °ü°è»ó ÀϴܶôÀº ÁþÁö¸¸ ÀÌ ÇÁ·ÎÁ§Æ®´Â °è¼Ó ÁøÇàÇÑ´Ù. °³¹ßÀº Åð±Ù ÈÄ Æ´Æ´ÀÌ ÁøÇàÇÏ¿© ¼Ò½º´Â °è¼Ó ¾÷µ¥ÀÌÆ®ÇÒ °ÍÀÌ´Ù. Â÷ÈÄ Á÷ÀåÀ» °üµÎ°Ô µÇ°Å³ª ´Ä¾ú´Ù°í ©¸®°Ô µÈ´Ù¸é ±×¶§´Â °­Á¸¦ º¸°­ÇÒ ±âȸ°¡ ÀÖÀ» °ÍÀÌ´Ù. ´ÙÀ½ ¹ø ±âȸ°¡ ÁÖ¾îÁö¸é ±×°£ÀÇ ÁøÇà »óȲ±îÁö Æ÷°ýÇÏ¿© ´õ ²Ä²ÄÇÏ°Ô ¿ø°í¸¦ ÀÛ¼ºÇÏ°í ½Í´Ù. ºÎµð ÀÌ °­Á°¡ ÇÁ·Î±×·¡¹Ö¿¡ ¸· ÀÔ¹®ÇÑ Ãʺ¸ °³¹ßÀÚ¿¡°Ô Á¶±ÝÀ̳ª¸¶ µµ¿òÀÌ µÇ±â¸¦ ¹Ù¶ö »ÓÀÌ´Ù.