º¸±â, »ö»ó ÆäÀÌÁö°¡ ÁÖ·Î ÇÁ·Î±×·¥ÀÇ ¿ÜÇü¿¡ °ü·ÃµÈ ¿É¼ÇÀ» ´Ù·ç´Â °Í¿¡ ºñÇØ ÆíÁý ÆäÀÌÁö´Â ÇÁ·Î±×·¥ÀÇ µ¿ÀÛ¿¡ ´ëÇÑ ¿É¼ÇÀ» ´Ù·é´Ù. ´ëÈ»óÀÚÀÇ ¸ð¾çÀº ´ÙÀ½°ú °°´Ù.
ÅÇ Å©±â¿Í ±× ¿Ü ÆíÁý µ¿ÀÛ¿¡ ´ëÇÑ ¼±Åà ¿©ºÎ¸¦ ÀԷ¹޴ ¸¹Àº üũ¹Ú½ºµéÀÌ ¹èÄ¡µÇ¾î ÀÖ´Ù. ÀÌÁß ÀϺΠ¿É¼ÇÀº ¾ÆÁ÷ ±¸ÇöµÇÁö ¾ÊÀº °ÍµéÀÌ´Ù. ´ëÈ»óÀÚ ÇÁ·Î½ÃÀúÀÇ ÄÚµå´Â ´ÙÀ½°ú °°ÀÌ ÀÛ¼ºÇÑ´Ù.
BOOL CALLBACK EditDlgProc(HWND hDlg,UINT iMessage,WPARAM wParam,LPARAM lParam)
{
HWND hCon;
int tint;
switch(iMessage)
{
case WM_INITDIALOG:
hCon=GetDlgItem(hDlg,IDC_TABWIDTH);
SendMessage(hCon,CB_ADDSTRING,0,(LPARAM)"1");
SendMessage(hCon,CB_ADDSTRING,0,(LPARAM)"2");
SendMessage(hCon,CB_ADDSTRING,0,(LPARAM)"4");
SendMessage(hCon,CB_ADDSTRING,0,(LPARAM)"8");
SendMessage(hCon,CB_ADDSTRING,0,(LPARAM)"16");
hCon=GetDlgItem(hDlg,IDC_UNDOLIMIT);
SendMessage(hCon,CB_ADDSTRING,0,(LPARAM)"ÃÖÀú(10K)");
SendMessage(hCon,CB_ADDSTRING,0,(LPARAM)"ÀÛÀ½(100K)");
SendMessage(hCon,CB_ADDSTRING,0,(LPARAM)"º¸Åë(1M)");
SendMessage(hCon,CB_ADDSTRING,0,(LPARAM)"Å(5M)");
SendMessage(hCon,CB_ADDSTRING,0,(LPARAM)"ÃÖ´ë(10MB)");
hCon=GetDlgItem(hDlg,IDC_FINDDLGPOS);
SendMessage(hCon,CB_ADDSTRING,0,(LPARAM)"¸ÞÀÎ À©µµ¿ìÀÇ ¿ÞÂÊ À§");
SendMessage(hCon,CB_ADDSTRING,0,(LPARAM)"¸ÞÀÎ À©µµ¿ìÀÇ ¿À¸¥ÂÊ À§");
SendMessage(hCon,CB_ADDSTRING,0,(LPARAM)"¸ÞÀÎ À©µµ¿ìÀÇ ¿À¸¥ÂÊ ¾Æ·¡");
SendMessage(hCon,CB_ADDSTRING,0,(LPARAM)"¸ÞÀÎ À©µµ¿ì Áß¾Ó");
return TRUE;
case WM_COMMAND:
switch (LOWORD(wParam)) {
case IDC_TABWIDTH:
case IDC_UNDOLIMIT:
case IDC_FINDDLGPOS:
switch (HIWORD(wParam)) {
case CBN_SELCHANGE:
case CBN_EDITCHANGE:
PropSheet_Changed(GetParent(hDlg),hDlg);
break;
}
return TRUE;
case IDC_ALLOWDRAG:
case IDC_USELINEEND:
case IDC_INITFIND:
case IDC_INITNEXTFIND:
case IDC_SOUNDFINDFAIL:
case IDC_SPACEFORTAB:
case IDC_AUTOINDENT:
case IDC_BLOCKINDENTWITHTAB:
case IDC_HOMETOFIRSTCHAR:
case IDC_CALCTABWITHAVG:
PropSheet_Changed(GetParent(hDlg),hDlg);
return TRUE;
}
break;
case WM_NOTIFY:
switch (((LPNMHDR)lParam)->code) {
case PSN_SETACTIVE:
g_StartPage=3;
SetDlgItemInt(hDlg,IDC_TABWIDTH,NewOption.TabWidth,FALSE);
CheckDlgButton(hDlg,IDC_ALLOWDRAG,NewOption.bAllowDrag ? BST_CHECKED:BST_UNCHECKED);
CheckDlgButton(hDlg,IDC_USELINEEND,NewOption.bUseLineEnd ? BST_CHECKED:BST_UNCHECKED);
SendDlgItemMessage(hDlg,IDC_UNDOLIMIT,CB_SETCURSEL,NewOption.UndoLimit,0);
SendDlgItemMessage(hDlg,IDC_FINDDLGPOS,CB_SETCURSEL,NewOption.FindDlgPos,0);
CheckDlgButton(hDlg,IDC_INITFIND,NewOption.bInitFind ? BST_CHECKED:BST_UNCHECKED);
CheckDlgButton(hDlg,IDC_INITNEXTFIND,NewOption.bInitNextFind ? BST_CHECKED:BST_UNCHECKED);
CheckDlgButton(hDlg,IDC_SOUNDFINDFAIL,NewOption.bSoundFindFail
? BST_CHECKED:BST_UNCHECKED);
CheckDlgButton(hDlg,IDC_SPACEFORTAB,NewOption.bSpaceForTab
? BST_CHECKED:BST_UNCHECKED);
CheckDlgButton(hDlg,IDC_AUTOINDENT,NewOption.bAutoIndent
? BST_CHECKED:BST_UNCHECKED);
CheckDlgButton(hDlg,IDC_BLOCKINDENTWITHTAB,NewOption.bBlockIndentWithTab ?
BST_CHECKED:BST_UNCHECKED);
CheckDlgButton(hDlg,IDC_HOMETOFIRSTCHAR,NewOption.bHomeToFirstChar
? BST_CHECKED:BST_UNCHECKED);
CheckDlgButton(hDlg,IDC_CALCTABWITHAVG,NewOption.bCalcTabWithAvg
? BST_CHECKED:BST_UNCHECKED);
return TRUE;
case PSN_APPLY:
ApplyNow();
return TRUE;
case PSN_KILLACTIVE:
tint=GetDlgItemInt(hDlg,IDC_TABWIDTH,NULL,FALSE);
if (tint < 1 || tint > 32) {
MessageBox(hDlg,"ÅÇÀº 1~32»çÀÌÀÇ °ªÀ» ÁöÁ¤ÇØ¾ß ÇÕ´Ï´Ù","¾Ë¸²",MB_OK);
SetWindowLong(hDlg,DWL_MSGRESULT,TRUE);
return TRUE;
}
NewOption.TabWidth=GetDlgItemInt(hDlg,IDC_TABWIDTH,NULL,FALSE);
NewOption.bAllowDrag=IsDlgButtonChecked(hDlg,IDC_ALLOWDRAG) ? TRUE:FALSE;
NewOption.bUseLineEnd=IsDlgButtonChecked(hDlg,IDC_USELINEEND) ? TRUE:FALSE;
NewOption.UndoLimit=SendDlgItemMessage(hDlg,IDC_UNDOLIMIT,CB_GETCURSEL,0,0);
NewOption.FindDlgPos=SendDlgItemMessage(hDlg,IDC_FINDDLGPOS,CB_GETCURSEL,0,0);
NewOption.bInitFind=IsDlgButtonChecked(hDlg,IDC_INITFIND) ? TRUE:FALSE;
NewOption.bInitNextFind=IsDlgButtonChecked(hDlg,IDC_INITNEXTFIND) ? TRUE:FALSE;
NewOption.bSoundFindFail=IsDlgButtonChecked(hDlg,IDC_SOUNDFINDFAIL) ? TRUE:FALSE;
NewOption.bSpaceForTab=IsDlgButtonChecked(hDlg,IDC_SPACEFORTAB) ? TRUE:FALSE;
NewOption.bAutoIndent=IsDlgButtonChecked(hDlg,IDC_AUTOINDENT) ? TRUE:FALSE;
NewOption.bBlockIndentWithTab=IsDlgButtonChecked(hDlg,IDC_BLOCKINDENTWITHTAB) ? TRUE:FALSE;
NewOption.bHomeToFirstChar=IsDlgButtonChecked(hDlg,IDC_HOMETOFIRSTCHAR) ? TRUE:FALSE;
NewOption.bCalcTabWithAvg=IsDlgButtonChecked(hDlg,IDC_CALCTABWITHAVG) ? TRUE:FALSE;
return TRUE;
}
break;
}
return FALSE;
}
´ëÈ»óÀÚ¿¡ ¹èÄ¡µÈ ÄÁÆ®·ÑµéÀÌ ´ëºÎºÐ üũ¹Ú½ºµéÀ̹ǷΠƯº°È÷ ´«¿©°Ü º¼¸¸ÇÑ Äڵ尡 ¾ø´Ù. ¿É¼ÇÀ» ÄÁÆ®·Ñ¿¡ Ç¥½ÃÇÏ°í º¯°æµÈ °ªÀ» ´Ù½Ã ÀоîµéÀÌ´Â ÄÚµåµéÀÌ¸ç ¾Õ¿¡¼ ¸¸µé¾ú´ø ÆäÀÌÁöµé¿¡ ºñÇØ ÈξÀ ´õ °£´ÜÇÑ ±¸Á¶¸¦ °¡Áø´Ù. ÇÑ ¹ø Á× ÈÈ¾î º¸±â¸¸ Çصµ ¹«½¼ ÄÚµåÀÎÁö ±Ý¹æ ¾Ë ¼ö ÀÖÀ» °ÍÀÌ´Ù.
ÀÌ ¿Ü¿¡ ¹®¹ý, Àμâ ÆäÀÌÁöµµ Àִµ¥ ÀÌ ÆäÀÌÁö´Â ¸®¼Ò½º¸¸ ¸¸µé¾îÁ® ÀÖ°í ¾ÆÁ÷ ±â´É ±¸ÇöÀÌ µÇÁö ¾Ê¾ÒÀ¸¹Ç·Î ¿É¼Ç¿¡ °ü·ÃµÈ Äڵ嵵 ÀÛ¼ºµÇ¾î ÀÖÁö ¾Ê´Ù. ¾î¶² ¸ð¾çÀ» °¡Áö´Â ÆäÀÌÁöÀÎÁö ±¸°æÀ̳ª ÀÏ´Ü Çغ¸µµ·Ï ÇÏÀÚ.
ÄÁÆ®·Ñ¸¸ ÀÖ°í Äڵ尡 ¾ø±â ¶§¹®¿¡ °ú¿¬ ½ä··ÇÏ´Ù. ´ëÈ»óÀÚ ÇÁ·Î½ÃÀúµµ Çü½Ä¸¸ °®Ãß°í ÀÖÀ¸¸ç ½ÇÁúÀûÀÎ ÄÚµå´Â ¾ÆÁ÷ ÀÛ¼ºµÇ¾î ÀÖÁö ¾Ê´Ù.
BOOL CALLBACK SyntaxDlgProc(HWND hDlg,UINT iMessage,WPARAM wParam,LPARAM lParam)
{
switch(iMessage)
{
case WM_INITDIALOG:
return TRUE;
case WM_NOTIFY:
LPNMHDR hdr;
hdr=(LPNMHDR)lParam;
switch (hdr->code) {
case PSN_SETACTIVE:
g_StartPage=4;
return TRUE;
case PSN_APPLY:
return TRUE;
case PSN_KILLACTIVE:
return TRUE;
}
break;
}
return FALSE;
}
BOOL CALLBACK PrintDlgProc(HWND hDlg,UINT iMessage,WPARAM wParam,LPARAM lParam)
{
switch(iMessage)
{
case WM_INITDIALOG:
return TRUE;
case WM_NOTIFY:
LPNMHDR hdr;
hdr=(LPNMHDR)lParam;
switch (hdr->code) {
case PSN_SETACTIVE:
g_StartPage=5;
return TRUE;
case PSN_APPLY:
return TRUE;
case PSN_KILLACTIVE:
return TRUE;
}
break;
}
return FALSE;
}
ÀÌ µÎ ÇÔ¼öÀÇ ÄÚµå´Â ÇÑÂü ÈÄ¿¡ õõÈ÷ ä¿öÁú °ÍÀÌ´Ù. ±×·¡µµ ºó ´ëÈ»óÀÚ³ª¸¶ ÀÖ¾î¾ß ÇÁ·ÎÆÛƼ ½ÃÆ®°¡ Ãʱâȸ¦ ÇÒ ¼ö ÀÖÀ¸¹Ç·Î Äڵ忡´Â ÀÏ´Ü Æ÷ÇÔ½ÃÄÑ µÎµµ·Ï ÇÏÀÚ.
¿©±â±îÁö ¼³Á¤ ´ëÈ»óÀÚ¸¦ ÀÛ¼ºÇß´Ù. ¸¹Àº ¾çÀÇ Äڵ尡 Ãß°¡µÇ¾ú´Âµ¥ ÀÌ ´ëÈ»óÀÚ°¡ ÇÏ´Â ÀÏÀº ¼³Á¤À» Á÷Á¢ ¹Ù²Ù´Â °Íµµ ¾Æ´Ï°í º¯°æµÈ ¿É¼ÇÀ» Àû¿ëÇÏ´Â °Íµµ ¾Æ´Ï´Ù. ¿À·ÎÁö OptionÀÇ »çº»ÀÎ NewOptionÀÇ °ªÀ» º¸¿©ÁÖ°í »ç¿ëÀÚ°¡ ÀÌ ±¸Á¶Ã¼ÀÇ °ªÀ» Æí¸®ÇÏ°Ô º¯°æÇϵµ·Ï ÇÏ´Â °ÍÀÌ ÇÏ´Â ÀÏÀÇ ÀüºÎÀÌ´Ù. ±¸Á¶Ã¼°¡ Å©´Ù º¸´Ï ÇÊ¿äÇÑ ÄÁÆ®·ÑÀÌ ¸¹°í µû¶ó¼ ÄÁÆ®·Ñ ÀÔÃâ·Â Äڵ尡 ¸¹À» »ÓÀÌÁö ÇÏ´Â ÀÏÀº ¾ÆÁÖ ´Ü¼øÇÏ´Ù.