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ÀÏ°£ÀÇ
Ãß¼® Ȳ±Ý ¿¬ÈÞµ¿¾È °íÇâ¿¡µµ ¾È°¡°í ¿ÜÃâµµ ÇÏÁö ¾Ê°í ¹æ¿¡ Ʋ¾î¹ÚÇô ¹ã³·À¸·Î ¿ÂÀüÈ÷ ´Ù Çå³³Çß´Ù.
Á÷ÀåÀÎÀÌ ÀÌ Á¤µµ ½Ã°£À» ³¾ ¼ö ÀÖ´Â ±âȸ´Â °ÅÀÇ ¾øÀ¸¸ç ¼ÖÁ÷È÷ Èûµé¾ú´Ù. ±×¸²µµ
Á» ¸¹ÀÌ ³Ö°í ¼¼ºÎ Äڵ忡 ´ëÇؼµµ »ó¼¼ÇÑ ¼³¸íÀ» ´õ ´Þ°í ½ÍÁö¸¸ ÁÖ¾îÁø ½Ã°£ÀÌ ¸¹Áö ¾Ê´Ù º¸´Ï ±×·² ¼ö°¡ ¾ø¾ú´Ù. ¾ÕÀ¸·Î ÀÌ·± ±âȸ°¡ ´õ ¿ÀÁöµµ ¾ÊÀ» °ÍÀÌ°í ¿Â´Ù°í Çصµ ´Ù¸¥ ÇÒ Àϵµ ¸¹¾Æ ´çºÐ°£Àº °Á¸¦ ¾÷µ¥ÀÌÆ®Çϱ⠾î·Æ´Ù.
½Ã°£ °ü°è»ó ÀϴܶôÀº ÁþÁö¸¸ ÀÌ ÇÁ·ÎÁ§Æ®´Â °è¼Ó ÁøÇàÇÑ´Ù. °³¹ßÀº
Åð±Ù ÈÄ Æ´Æ´ÀÌ ÁøÇàÇÏ¿© ¼Ò½º´Â °è¼Ó ¾÷µ¥ÀÌÆ®ÇÒ °ÍÀÌ´Ù. Â÷ÈÄ Á÷ÀåÀ» °üµÎ°Ô µÇ°Å³ª ´Ä¾ú´Ù°í ©¸®°Ô
µÈ´Ù¸é ±×¶§´Â °Á¸¦ º¸°ÇÒ ±âȸ°¡ ÀÖÀ» °ÍÀÌ´Ù. ´ÙÀ½ ¹ø ±âȸ°¡ ÁÖ¾îÁö¸é ±×°£ÀÇ ÁøÇà »óȲ±îÁö Æ÷°ýÇÏ¿©
´õ ²Ä²ÄÇÏ°Ô ¿ø°í¸¦ ÀÛ¼ºÇÏ°í ½Í´Ù. ºÎµð ÀÌ °Á°¡ ÇÁ·Î±×·¡¹Ö¿¡ ¸· ÀÔ¹®ÇÑ Ãʺ¸ °³¹ßÀÚ¿¡°Ô Á¶±ÝÀ̳ª¸¶
µµ¿òÀÌ µÇ±â¸¦ ¹Ù¶ö »ÓÀÌ´Ù.