»ö»óµµ º¸±â¿Í ¸¶Âù°¡Áö·Î ÇÁ·Î±×·¥ÀÇ ¿ÜÇüÀ» °áÁ¤ÇÏ´Â Áß¿äÇÑ ¿ä¼ÒÀÌ´Ù. ȸéÀÇ °÷°÷¿¡ ´ëÇØ »ç¿ëÀÚ°¡ »ö»óÀ» Á¤ÀÇÇÒ ¼ö ÀÖµµ·Ï Çصξú´Ù. ÀÔ·Â¹Þ¾Æ¾ß ÇÒ »ö»ó°ªÀÌ ¸¹°í »ö»óÀ» ÀԷ¹޴ ¹æ¹ýÀÌ µ¿ÀÏÇϹǷΠº°µµÀÇ ÆäÀÌÁö¸¦ µû·Î ¸¸µé¾ú´Ù.
»ö»ó°ªµéÀº ¸ðµÎ ¿À³Ê µå·Î¿ì ÄÞº¸¹Ú½º·Î º¸¿©ÁÖ°í ÀԷ¹޴´Ù. »ö»ó°ªÀ» ÀԷ¹޴ ¹æ¹ý¿¡´Â ¿©·¯ °¡Áö ´Ù¾çÇÑ ¹æ¹ýÀÌ ÀÖ´Ù. ¹ÙÅÁ ȸéó·³ ¹Ì¸® º¸±â¸¦ º¸¿©ÁÖ°í º¯°æÇÒ ´ë»óÀ» Ŭ¸¯ÇÏ¿© °í¸¥ ÈÄ »ö»óÀ» ¼±Åà ¶Ç´Â ÀÔ·ÂÇÏ´Â ¹æ¹ýµµ ÀÖ°í »ö»ó À̸§À» ³ª¿ÇÏ°í ±× ¿·¿¡ ÆÈ·¹Æ®¸¦ ±×·Á µÎ¾î ´ë»óÀ» ¸ÕÀú ¼±ÅÃÇÑ ÈÄ »ö»óÀ» °í¸£µµ·Ï ÇÏ´Â ¹æ¹ýµµ »ý°¢ÇØ º¼ ¼ö ÀÖ´Ù.
¿À³Ê µå·Î¿ì ÄÞº¸¹Ú½º´Â Á÷°üÀûÀÎ ÀÎÅÍÆäÀ̽º¸¦ Á¦°øÇϱâ´Â ÇÏÁö¸¸ ±×´ÙÁö ¿¹»Û ¸ð¾çÀº ¾Æ´Ï¸ç ´Ù¾çÇÑ »ö»óÀ» °í¸£±â¿¡µµ Á» ºÒÆíÇÑ ¸éÀÌ ÀÖ´Ù. ±×·³¿¡µµ ºÒ±¸ÇÏ°í ¿À³Ê µå·Î¿ì ÄÞº¸¹Ú½º¸¦ ¼±ÅÃÇÑ ÀÌÀ¯´Â ÅÍÄ¡¼ö°¡ ³·±â ¶§¹®ÀÌ´Ù. ÀÌ ±¸Á¶¿¡¼´Â ÄÞº¸¹Ú½º ¿¬´Ù, »ö»ó °í¸¥´Ù ¹æ½ÄÀÇ ÅõÅÍÄ¡(Two Touch)¸¸À¸·Î ½Å¼ÓÇÏ°Ô »ö»óÀ» ¹Ù²Ü ¼ö ÀÖ´Ù. º¯°æ ´ë»óÀ» ¸ÕÀú ¼±ÅÃÇÏ°í RGB°ªÀ» °¢°¢ ÀÔ·Â ¶Ç´Â ¼±ÅÃÇÏ°í º¯°æ ¹öÆ°À» Ŭ¸¯ÇÏ´Â ¹ø°Å·Î¿î ¹æ½ÄÀ» ½È¾îÇÏ´Â ¼º°ÝÀ̶ó ÀÌ·± ´Ü¼øÇÑ ¹æ¹ýÀ» ¼±ÅÃÇߴµ¥ °³¹ßÀÚÀÇ ÃëÇâ¿¡ µû¶ó ´Ù¾çÇÑ º¯È¸¦ ÁÙ ¼ö ÀÖÀ» °ÍÀÌ´Ù.
´ç±ÙÀº µÎ ¹øÀÇ Å¬¸¯À¸·Î »ö»óÀ» ¼±ÅÃÇÒ ¼ö ÀÖµµ·Ï Çϱâ À§ÇØ »ö»ó°ªÀ» Á» Ư¼öÇÑ ¹æ½ÄÀ¸·Î ´Ù·ç°í ÀÖ´Ù. »ö»óÀ̶õ RGB ¼¼ ¿ä¼ÒÀÇ °µµ Á¶ÇÕÀ¸·Î Ç¥ÇöµÇ´Âµ¥ °¢ ¿ä¼Ò¸¦ °³º°ÀûÀ¸·Î Á÷Á¢ ÀÔ·Â ¶Ç´Â ¼±ÅÃÇÏ¿© ¿øÇÏ´Â »ö»óÀ» ¸¸µé¾î ³»´Â ¹æ½ÄÀº ºñ·Ï ÀÚÀ¯·Î¿î ¼±ÅÃÀ» °¡´ÉÇÏ°Ô ÇÏÁö¸¸ ¹«Ã´ ¹ø°Å·Î¿î ÀÏÀÌ´Ù. ±×·¡¼ ÀÌ·± Á÷Á¢ ¼±Åà ¹æ½Äº¸´Ù´Â ¹Ì¸® Á¤ÀÇµÈ »ö»óÇ¥¸¦ Á¦°øÇÏ°í ÀÌ Áß Çϳª¸¦ °í¸£´Â ¹æ½ÄÀ» À¯µµÇÏ¿´´Ù.
¹°·Ð »ö»ó¼±Åà ´ëÈ»óÀÚ¸¦ È£ÃâÇÏ¿© Á÷Á¢ ¿øÇÏ´Â »ö»óÀ» °í¸£´Â ¹æ¹ýµµ °°ÀÌ Á¦°øÇØ¾ß ÇÑ´Ù. ´ÙÀ½ ±¸Á¶Ã¼´Â ¹Ì¸® Á¤ÀÇµÈ »ö»óÇ¥ ±¸Á¶Ã¼¿Í ±âº»»ö»ó°ªÀ» °¡Áö´Â ¹è¿ÀÌ´Ù. Dangeun.cppÀÇ ¼±µÎ¿¡ ´ÙÀ½ ±¸Á¶Ã¼¸¦ ¼±¾ð ¹× ÃʱâÈÇϵµ·Ï ÇÏÀÚ. ÀÌ ±¸Á¶Ã¼´Â Â÷ÈÄ¿¡ ¹®¹ý Á¤ÀÇ¿¡µµ »ç¿ëµÈ´Ù.
struct arColor
{
TCHAR Name[16];
COLORREF Color;
};
arColor arPreColor[]={
{"±âº»»ö",RGB(0,0,0)},
{"»ç¿ëÀÚ ¼±Åûö",RGB(0,0,0)},
{"»ç¿ëÀÚ ¼±ÅÃ...",RGB(0,0,0)},
{"°ËÁ¤",RGB(0,0,0)},
{"Èò»ö",RGB(255,255,255)},
{"»¡°",RGB(255,0,0)},
{"ÃÊ·Ï",RGB(0,255,0)},
{"ÆĶû",RGB(0,0,255)},
{"³ë¶û",RGB(255,255,0)},
{"ºÐÈ«",RGB(255,0,255)},
{"Çϴûö",RGB(0,255,255)},
{"°íµ¿»ö",RGB(128,0,0)},
{"ÁøÃÊ·Ï",RGB(0,128,0)},
{"³²»ö",RGB(0,0,128)},
{"º¸¶ó»ö",RGB(180,84,233)},
{"ȸ»ö1(32)",RGB(32,32,32)},
{"ȸ»ö2(64)",RGB(64,64,64)},
{"ȸ»ö3(96)",RGB(96,96,96)},
{"ȸ»ö4(128)",RGB(128,128,128)},
{"ȸ»ö5(160)",RGB(160,160,160)},
{"ȸ»ö6(192)",RGB(192,192,192)},
{"ȸ»ö7(220)",RGB(220,220,220)},
{"¿¬³ë¶û",RGB(255,249,157)},
{"°³³ª¸®»ö",RGB(255,209,87)},
{"ȲÅä»ö",RGB(207,182,80)},
{"¿¬ÆĶû",RGB(141,207,244)},
{"°¨»ö",RGB(177,202,147)},
{"È帰ºÐÈ«",RGB(182,99,105)},
{"¿¬µÎ»ö",RGB(169,212,109)}
};
COLORREF arSysColor[10]={0,0,0,0,RGB(192,192,192),RGB(160,160,160),RGB(255,255,0),
RGB(128,128,128),RGB(255,255,0),RGB(0,0,0)};
arColor ±¸Á¶Ã¼´Â »ç¿ëÀÚ°¡ ¼±ÅÃÇÒ ¼ö ÀÖ´Â »ö»óÀÇ ¸ñ·ÏÀ» Á¤ÀÇÇϴµ¥ »ö»óÀÇ À̸§ÀÎ Name°ú ½ÇÁ¦ »ö»óÀÎ Color·Î ±¸¼ºµÈ´Ù. arPreColor´Â ¹Ì¸® Á¤ÀÇµÈ »ö»óÀÇ ¹è¿, Áï »ö»óÇ¥ÀÌ´Ù. ÷ÀÚ 0Àº ±âº»»ö, 1´Â »ç¿ëÀÚ°¡ ¼±ÅÃÇÑ »ö»óÀ» ³ªÅ¸³»¸ç ÷ÀÚ 2´Â »ö»óÀÌ ¾Æ´Ï¶ó »ö»ó¼±Åà ´ëÈ»óÀÚ¸¦ ¿©´Â ¸í·ÉÀ¸·Î »ç¿ëµÈ´Ù. ÷ÀÚ 3 ÀÌÈÄ°¡ ¹Ì¸® Á¤ÀÇµÈ »ö»ó°ªÀ̸ç ÀÚÁÖ ¼±ÅõǴ ¸î °¡Áö »ö»ó¿¡ ´ëÇÑ RGB°ªÀ» °¡Áö°í ÀÖ´Ù.
arSysColor´Â SOption¿¡ Á¤ÀÇµÈ »ö»ó º¯¼öµéÀÇ ±âº»°ªÀ» Á¤ÀÇÇÑ´Ù. ¿É¼ÇÀ» ¹Ù²Û »óÅ¿¡¼µµ ±âº»°ªÀ¸·Î µ¹¾Æ°¥ ¼ö ÀÖ¾î¾ß ÇϹǷΠÀÌ Á¤º¸´Â µû·Î °¡Áö°í ÀÖ¾î¾ß ÇÑ´Ù. »ö»óÇ¥¿¡¼ 0¹ø, Áï ±âº»»öÀ» ´©¸¦ ¶§ ÀÌ ¹è¿À» ÂüÁ¶ÇÏ¿© ¿ø·¡ »öÀ¸·Î µ¹¾Æ°¡°Ô µÈ´Ù. ¾ÕÂÊÀÇ 4°¡Áö ¿É¼Ç¿¡ ´ëÇÑ ±âº»»öÀº ½Ã½ºÅÛ »ö»óÀ̱⠶§¹®¿¡ »ó¼ö·Î ¹Ì¸® Á¤ÇÒ ¼ö ¾øÀ¸¸ç ÀÏ´Ü 0À¸·Î ÃʱâÈÇسõ°í GetSysColor ÇÔ¼ö·Î ½ÇÁ¦ »ö»óÀ» Á¶»çÇØ¾ß ÇÑ´Ù. ÀÌ »ö»óÀ» ÃʱâÈÇÏ´Â InitSysColor¶ó´Â ÇÔ¼ö¸¦ ¸¸µé°í Config ÇÔ¼ö¿¡¼ È£ÃâÇÏ¿´´Ù.
cFore, cSelBack, NumColor µî SOptionÀÇ »ö»ó º¯¼öµéÀº Á÷Á¢ »ö»ó°ªÀ» °¡Áö´Â °ÍÀÌ ¾Æ´Ï¶ó ÃÖ»óÀ§ ¹ÙÀÌÆ®¿¡ arPreColor ¹è¿ÀÇ Ã·ÀÚ¸¦ °¡Áø´Ù. ÀÌ Ã·ÀÚ°¡ 0ÀÌ¸é ±âº»»öÀÌ°í 1 ÀÌ»óÀÌ¸é µÚÀÇ 3¹ÙÀÌÆ®¿¡¼ »ö»ó°ªÀ» ÃßÃâÇÑ´Ù. ±×·¡¼ SOption::Init¿¡¼´Â »ö»ó º¯¼öµéÀ» Á÷Á¢ ÃʱâÈÇÏÁö ¾Ê°í ¸ðµÎ 0À¸·Î ÃʱâÈÇÏ¿© ±âº»°ªÀ» °¡Áöµµ·Ï ÇÏ¿´´Ù. »ö»óÀÇ ±âº»°ª¿¡ ´ëÇÑ Á¤º¸´Â SOptionÀÌ °¡ÁöÁö ¾ÊÀ¸¸ç arSysColor ¹è¿ÀÌ µû·Î °¡Áö°í ÀÖ´Ù.
»ö»ó ¿É¼ÇÀ» ¾î¶»°Ô °ü¸®ÇÏ°í ´Ù·ç´ÂÁö´Â »ö»ó ÆäÀÌÁöÀÇ ´ëÈ»óÀÚ ÇÁ·Î½ÃÀú¸¦ ÀÛ¼ºÇÏ¸é¼ Á» ´õ ¿¬±¸Çغ¸µµ·Ï ÇÏÀÚ.
COLORREF& GetColorFromID(int ID)
{
switch (ID) {
case IDC_CFORE:
return NewOption.cFore;
case IDC_CBACK:
return NewOption.cBack;
case IDC_CSELFORE:
return NewOption.cSelFore;
case IDC_CSELBACK:
return NewOption.cSelBack;
case IDC_MARCOLOR1:
return NewOption.MarColor1;
case IDC_MARCOLOR2:
return NewOption.MarColor2;
case IDC_MARKCOLOR:
return NewOption.MarkColor;
case IDC_CODECOLOR:
return NewOption.CodeColor;
case IDC_CURCOLOR:
return NewOption.CurColor;
default:
case IDC_NUMCOLOR:
return NewOption.NumColor;
}
}
void InitSysColor()
{
arSysColor[0]=GetSysColor(COLOR_WINDOWTEXT);
arSysColor[1]=GetSysColor(COLOR_WINDOW);
arSysColor[2]=GetSysColor(COLOR_HIGHLIGHTTEXT);
arSysColor[3]=GetSysColor(COLOR_HIGHLIGHT);
}
BOOL CALLBACK ColorDlgProc(HWND hDlg,UINT iMessage,WPARAM wParam,LPARAM lParam)
{
int i,idx;
LPMEASUREITEMSTRUCT lpmis;
LPDRAWITEMSTRUCT lpdis;
HBRUSH bkBrush, Brush, OldBrush;
int OldMode;
CHOOSECOLOR
static COLORREF crTemp[16];
COLORREF Color;
switch(iMessage)
{
case WM_INITDIALOG:
for (idx=IDC_CFORE;idx<=IDC_NUMCOLOR;idx++) {
for (i=0;i<sizeof(arPreColor)/sizeof(arPreColor[0]);i++) {
SendDlgItemMessage(hDlg,idx,CB_ADDSTRING,0,0);
}
}
return TRUE;
case WM_MEASUREITEM:
lpmis=(LPMEASUREITEMSTRUCT)lParam;
lpmis->itemHeight=16;
return TRUE;
break;
case WM_DRAWITEM:
Color=GetColorFromID(wParam);
lpdis=(LPDRAWITEMSTRUCT)lParam;
if (lpdis->itemState & ODS_SELECTED) {
bkBrush=CreateSolidBrush(RGB(0,0,255));
}
else {
bkBrush=CreateSolidBrush(RGB(255,255,255));
}
FillRect(lpdis->hDC, &lpdis->rcItem, bkBrush);
switch (lpdis->itemID) {
case 0:
Brush=CreateSolidBrush(arSysColor[wParam-IDC_CFORE]);
break;
case 1:
Brush=CreateSolidBrush(Color & 0xffffff);
break;
default:
Brush=CreateSolidBrush(arPreColor[lpdis->itemID].Color);
break;
}
OldBrush=(HBRUSH)SelectObject(lpdis->hDC, Brush);
if (lpdis->itemID != 2) {
Rectangle(lpdis->hDC,lpdis->rcItem.left+2,lpdis->rcItem.top+1,
lpdis->rcItem.left+20, lpdis->rcItem.bottom-1);
}
OldMode=SetBkMode(lpdis->hDC,TRANSPARENT);
TextOut(lpdis->hDC,lpdis->rcItem.left+25,lpdis->rcItem.top+2,
arPreColor[lpdis->itemID].Name,lstrlen(arPreColor[lpdis->itemID].Name));
SetBkMode(lpdis->hDC,OldMode);
SelectObject(lpdis->hDC, OldBrush);
DeleteObject(bkBrush);
DeleteObject(Brush);
return TRUE;
break;
case WM_COMMAND:
switch (HIWORD(wParam)) {
case CBN_SELCHANGE:
idx=SendDlgItemMessage(hDlg,LOWORD(wParam),CB_GETCURSEL,0,0);
if (idx==2) {
memset(&
COL.lStructSize = sizeof(CHOOSECOLOR);
COL.hwndOwner=hDlg;
COL.lpCustColors=crTemp;
if
(ChooseColor(&
GetColorFromID(LOWORD(wParam))=COL.rgbResult | 0x01000000;
InvalidateRect(GetDlgItem(hDlg,LOWORD(wParam)),NULL,TRUE);
}
SendDlgItemMessage(hDlg,LOWORD(wParam),CB_SETCURSEL,1,0);
} else {
GetColorFromID(LOWORD(wParam))=idx << 24 | arPreColor[idx].Color;
}
PropSheet_Changed(GetParent(hDlg),hDlg);
break;
}
return TRUE;
case WM_NOTIFY:
switch (((LPNMHDR)lParam)->code) {
case PSN_SETACTIVE:
g_StartPage=2;
for (idx=IDC_CFORE;idx<=IDC_NUMCOLOR;idx++) {
SendDlgItemMessage(hDlg,idx,CB_SETCURSEL,GetColorFromID(idx) >> 24,0);
}
return TRUE;
case PSN_APPLY:
ApplyNow();
return TRUE;
case PSN_KILLACTIVE:
return TRUE;
}
break;
}
return FALSE;
}
GetColorFromIDÇÔ¼ö´Â »ö»óÀ» Ç¥ÇöÇÏ´Â ÄÞº¸¹Ú½ºÀÇ ID·ÎºÎÅÍ ¿É¼Ç ±¸Á¶Ã¼ÀÇ ´ëÀÀµÇ´Â ¸â¹ö¸¦ ±¸ÇÑ´Ù. °ªÀ» ±¸ÇÏ´Â °ÍÀÌ ¾Æ´Ï¶ó º¯¼öÀÇ ·¹ÆÛ·±½º¸¦ ¸®ÅÏÇϹǷΠÀÌ ÇÔ¼öÀÇ ¸®ÅÏ°ªÀ» Àаųª º¯°æÇÒ ¼ö ÀÖ´Ù. ¿¹¸¦ µé¾î Àü°æ»öÀ» °ü¸®ÇÏ´Â IDC_CFORE ÄÞº¸¹Ú½ºÀÇ ID¸¦ Àμö·Î Àü´ÞÇϸé ÀÌ ÇÔ¼ö´Â ÀÌ ÄÁÆ®·Ñ°ú ´ëÀÀµÇ´Â NewOption.cFore º¯¼ö ÀÚü¸¦ ¸®ÅÏÇÑ´Ù. ÇÔ¼öÀÇ ¸®ÅÏ°ª¿¡ °ªÀ» ´ëÀÔÇÏ´Â Çü½ÄÀÎ func()=value;´Â C++¿¡¼¸¸ °¡´ÉÇÑ ¹æ¹ýÀε¥ ÈçÈ÷ ¾²´Â ¹®¹ýÀº ¾Æ´ÏÁö¸¸ »ç¿ëÇغ¸¸é Æí¸®ÇÏ´Ù.
ColorDlgProc ÇÔ¼ö´Â ´Ù¸¥ ÆäÀÌÁö¿Í´Â ´Þ¸® ¿À³Ê µå·Î¿ì ÄÞº¸¹Ú½º¸¦ »ç¿ëÇϱ⠶§¹®¿¡ ÀüüÀûÀÎ ¸ð¾çÀ̳ª ó¸®ÇÏ´Â ¸Þ½ÃÁöÀÇ Á¾·ù°¡ Á» ´Ù¸£´Ù. WM_INITDIALOG¿¡¼´Â ¸ðµç ÄÞº¸¹Ú½º¿¡ »ö»óÇ¥¸¸ÅÀÇ Ç׸ñÀ» Ãß°¡ÇÑ´Ù. Ç׸ñ ÀÚü´Â WM_DRAWITEM¿¡¼ ±×·ÁÁö¹Ç·Î ¹®ÀÚ¿À» ÁöÁ¤ÇÏÁö ¾Ê¾Æµµ µÇ¸ç ºó Ç׸ñÀÌ¶óµµ ÀÏ´Ü Ãß°¡Çسõ±â¸¸ ÇÏ¸é µÈ´Ù.
¿À³Ê µå·Î¿ì ÄÞº¸¹Ú½º´Â WM_MEASUREITEM, WM_DRAWITEM ¸Þ½ÃÁö¿¡¼ ±×·ÁÁö´Âµ¥ ÀϹÝÀûÀÎ ÄÚµåÀ̹ǷΠ±¸Ã¼ÀûÀÎ ºÐ¼®Àº ÇÏÁö ¾Ê±â·Î ÇÑ´Ù. ¿À³Ê µå·Î¿ì¿¡ ´ëÇÑ ÀÚ·á´Â ¸¹ÀÌ °ø°³µÇ¾î ÀÖÀ¸¹Ç·Î Âü°íÀڷḦ ã¾Æ º¸±â ¹Ù¶õ´Ù. »ö»ó°ª Ç׸ñµéÀÇ ³ôÀÌ´Â ¸ðµÎ 16Çȼ¿·Î °íÁ¤µÇ¾î ÀÖÀ¸¸ç Ç׸ñ À妽º¿Í ¼±Åà ¿©ºÎ¿¡ µû¶ó Á¶±Ý¾¿ ´Ù¸£°Ô ±×·ÁÁø´Ù. ¼±ÅÃµÈ Ç׸ñÀº ¹è°æÀ» ÆĶõ»öÀ¸·Î ±×¸®¸ç ³ª¸ÓÁö Ç׸ñÀº Èò»ö ¹è°æÀ» °¡Áø´Ù.
ÇöÀç Ç׸ñ À妽º°¡ 0À̸é Áï, ±âº»»öÀ̸é arSysColor ¹è¿¿¡¼ ±âº»»öÀ» ±¸ÇÏ°í »ç¿ëÀÚÁ¤ÀÇ»ö(1)À̸é NewOptionÀÇ ´ëÀÀµÇ´Â »ö»ó º¯¼ö¿¡¼ ÃÖ»óÀ§ ¹ÙÀÌÆ®¸¦ 0À¸·Î ¸¸µç RGB°ªÀ» ±¸Çϸç 3ÀÌ»óÀÎ °æ¿ì´Â arPreColor »ö»óÇ¥¿¡¼ »ö»óÀ» ±¸ÇÑ´Ù. 2¹ø À妽º´Â »ö»óÀÌ ¾Æ´Ï¶ó »ö»ó ´ëÈ»óÀÚ¸¦ º¸¿©ÁÖ¶ó´Â ¸í·ÉÀ̱⠶§¹®¿¡ ÄÞº¸¹Ú½º°¡ ÀÌ À妽º¸¦ °¡Áö´Â °æ¿ì´Â ¾ø´Ù.
WM_COMMAND¿¡¼´Â 2¹ø Ç׸ñ, Áï »ç¿ëÀÚ ¼±Åà Ç׸ñÀ» ¼±ÅÃÇßÀ» ¶§ »ö»ó¼±Åà ´ëÈ»óÀÚ¸¦ º¸¿©ÁÖ°í ÀÌ ´ëÈ»óÀÚ¿¡¼ »ç¿ëÀÚ°¡ ¼±ÅÃÇÑ »ö»óÀ» ´ëÀÀµÇ´Â »ö»ó º¯¼ö¿¡ ´ëÀÔÇÑ´Ù. ±âº»»öÀ̳ª »ö»óÇ¥ÀÇ ÇÑ »ö»óÀ» ¼±ÅÃÇßÀ¸¸é »ö»ó º¯¼öÀÇ »óÀ§ ¹ÙÀÌÆ®¿¡ À妽º¸¦ ³Ö°í ÇÏÀ§ 3¹ÙÀÌÆ®¿¡ ½ÇÁ¦ »ö»óÀ» ³Ö´Â´Ù. »ö»ó Áß Çϳª¶óµµ º¯°æµÇ¾úÀ¸¸é Àû¿ë ¹öÆ°À» È°¼ºÈ½ÃÄÑ¾ß ÇÑ´Ù.
PSN_SETACTIVE¿¡¼´Â ¸ðµç »ö»ó ÄÞº¸¹Ú½º¿¡ ÇöÀç ¼±ÅÃµÈ »ö»óÀ» ´ëÀÔÇÏ¿´´Ù. »ö»ó°ªÀÌ ¹Ù²î´Â Áï½Ã NewOptionÀÇ »ö»ó º¯¼ö¸¦ º¯°æÇÏ°í Àֱ⠶§¹®¿¡ PSN_KILLACTIVE¿¡¼´Â ¾Æ¹« °Íµµ ÇÏÁö ¾Ê¾Æµµ µÈ´Ù.