È£½ºÆ®°¡ Àμ⸦ À§ÇØ Á¦ÀÏ ¸ÕÀú ÇØ¾ß ÇÒ ÀÏÀº Àμ⠿ɼÇÀ» °ü¸®ÇÏ´Â ÀÏÀÌ´Ù. »ç¿ëÀÚ´Â Àμâ½Ã »ç¿ëÇÒ ±Û²Ã, Á¤·Ä¹æ½Ä, ¹®¹ý ºÐ¼® ¹æ¹ý, ÁÙ¹øÈ£ Ãâ·Â ¿©ºÎ µîÀ» ¼±ÅÃÇÒ ¼ö Àִµ¥ ÀÌ·± ¿É¼ÇµéÀº ȸéÃâ·Â¿¡µµ ÀÌ¹Ì ÀÖ´Â °ÍµéÀÌ´Ù. ÇÏÁö¸¸ »ç¿ëÀÚµéÀÌ Ç×»ó ȸ鿡 º¸´Â ´ë·Î ÀμâÇϱ⸦ ¿øÇÏ´Â °ÍÀº ¾Æ´Ï¹Ç·Î Àμâ¿ë ¿É¼ÇÀ» µû·Î °ü¸®ÇÑ´Ù. ȸ鿡´Â ÁÙ¹øÈ£¸¦ Ç¥½ÃÇÏÁö ¾Ê´õ¶óµµ ÀμâÇÒ ¶§´Â ÁÙ¹øÈ£¸¦ ¿øÇÒ ¼öµµ ÀÖ°í È¸é ±Û²Ã°ú Àμ⠱۲ÃÀº ´ç¿¬È÷ ´Ù¸¦ ¼ö ÀÖ´Ù. ¸¸¾à Àμ⠿ɼÇÀ» µû·Î µÎÁö ¾Ê´Â´Ù¸é »ç¿ëÀÚµéÀº Àμ⿡ ÀûÇÕÇÑ ¿É¼ÇÀ» ¼±ÅÃÇÑ ÈÄ ÀμâÇØ¾ß ÇÏ´Â ¹ø°Å·Î¿òÀÌ ÀÖÀ» °ÍÀÌ´Ù.
ÀÌ ¿Ü¿¡ ¿ëÁöÀÇ ¿©¹é, ¹Ù·Î Àμâ, ¸Ó¸®¸», ²¿¸®¸», ¹è°æ ÅؽºÆ® µîÀÇ Àμâ Àü¿ë ¿É¼Çµéµµ ÇÊ¿äÇÏ´Ù. ¿É¼Ç ±¸Á¶Ã¼ÀÎ SOption¿¡ ´ÙÀ½ ¸â¹öµéÀ» Ãß°¡ÇÑ´Ù. ÀÌ ±¸Á¶Ã¼´Â Dangeun3¿¡¼ ¸¸µé¾úÀ¸¸ç ´ëºÎºÐÀÇ ¿É¼Ç º¯¼öµéÀ» ¹Ì¸® Æ÷ÇÔÇصξúÁö¸¸ Àμâ¿ë ¿É¼ÇÀº Æ÷ÇԵǾî ÀÖÁö ¾Ê´Ù.
struct SOption
{
....
LOGFONT prtFont;
RECT prtMargin;
BOOL prtbParse;
BOOL prtnWrap;
BOOL prtbLineNum;
BOOL prtbSysHeader;
BOOL prtbDirect;
TCHAR prtHeader[256];
TCHAR prtFooter[256];
int prtnHeader;
int prtnFooter;
TCHAR prtBkText[64];
};
SOption::Init¿¡¼ ÀÌ ¿É¼ÇµéÀ» ´ÙÀ½°ú °°ÀÌ ÃʱâÈÇÑ´Ù. °¡Àå ¹«³ÇÏ°Ô ÀμâÇÒ ¼ö ÀÖ´Â ¿É¼ÇµéÀÌ´Ù.
void SOption::Init()
{
....
prtFont.lfHeight=-1;
SetRect(&prtMargin,15,25,15,25);
prtbParse=TRUE;
prtnWrap=2;
prtbLineNum=FALSE;
prtbSysHeader=TRUE;
prtbDirect=FALSE;
lstrcpy(prtHeader,"");
lstrcpy(prtFooter,"[ÆÄÀÏ][°¡¿îµ¥][ÂÊ]/[ÀüüÂÊ][¿À¸¥ÂÊ]´ç±ÙÀ¸·Î Àμâ");
prtnHeader=0;
prtnFooter=4;
lstrcpy(prtBkText,"");
°¢ ¿É¼ÇÀÇ Àǹ̴ ´ÙÀ½°ú °°´Ù. ¿É¼ÇÀÇ ÀÇ¹Ì¿Í Init¿¡¼ ÀÌ ¿É¼ÇµéÀÌ ¾î¶»°Ô ÃʱâȵǾú´ÂÁö¸¦ °°ÀÌ º¸¾Æ¶ó.
¿É¼Ç |
¼³¸í |
prtFont |
Àμ⿡ »ç¿ëÇÒ ±Û²ÃÀÌ´Ù. lfHeight°¡ 0ÀÌ¸é ½Ã½ºÅÛ ±Û²Ã, -1À̸é ÇöÀç È¸é ±Û²Ã·Î ÀμâÇÑ´Ù. ¹°·Ð º°µµÀÇ ±Û²ÃÀ» ÁöÁ¤ÇÒ ¼öµµ ÀÖ´Ù. |
prtMargin |
Àμ⠿ëÁöÀÇ ¿©¹éÀ̸ç mm´ÜÀ§ÀÌ´Ù. ¸Ó¸®¸» ²¿¸®¸»Àº ¿©¹é ¹Ù±ù¿¡ ÀμâµÇ¸ç ÀÌ ¿©¹é ¾ÈÂÊÀ¸·Î º»¹®ÀÌ ÀμâµÈ´Ù. |
prtbParse |
±¸¹® ºÐ¼®À» ÇÒ °ÍÀΰ¡ ¾Æ´Ñ°¡¸¦ ÁöÁ¤ÇÑ´Ù. FALSEÀ̸é Èæ¹éÀ¸·Î ÀμâµÈ´Ù. ¾î¶² ¹®¹ýÀ¸·Î Çؼ®ÇÒ °ÍÀΰ¡´Â µû·Î ÁöÁ¤ÇÒ ¼ö ¾ø´Ù. |
prtnWrap |
ÀÚµ¿°³Çà ¹æ½ÄÀÌ´Ù. |
prtbLineNum |
¿ÞÂÊ¿¡ ÁÙ¹øÈ£¸¦ Ãâ·ÂÇÒ °ÍÀΰ¡¸¦ ÁöÁ¤ÇÑ´Ù. |
prtbDirect |
Àμ⠴ëÈ»óÀÚ¸¦ º¸¿©ÁÖÁö ¾Ê°í ±âº» ÇÁ¸°ÅÍ·Î ¹Ù·Î ÀμâÇÑ´Ù. |
prtHeader |
¸Ó¸®¸» ¹®ÀÚ¿ÀÌ¸ç °íÀ¯ÇÑ Æ÷¸ËÀ» °¡Áö°í ÀÖ´Ù. |
prtFooter |
²¿¸®¸» ¹®ÀÚ¿ÀÌ´Ù. |
prtnHeader |
¸Ó¸®¸» °æ°è¼±ÀÇ µÎ²²À̸ç 1/10mm ´ÜÀ§ÀÌ´Ù. |
prtnFooter |
²¿¸®¸» °æ°è¼±ÀÇ µÎ²²À̸ç 1/10mm ´ÜÀ§ÀÌ´Ù. |
ptrBkText |
¹®¼ ¹è°æ¿¡ ÀμâµÉ ¹®ÀÚ¿ÀÌ´Ù. ¹®¼ ¹è°æ¿¡ ºñ½ºµëÇÑ °¢µµ·Î È帮°Ô Ãâ·ÂµÈ´Ù. |
´Ù¸¥ ¿É¼Çµé°ú ¸¶Âù°¡Áö·Î ÇÑ ¹ø ¼±ÅÃÇÑ °ªÀº ´ÙÀ½ ¹ø¿¡µµ °è¼Ó »ç¿ëÇÒ ¼ö ÀÖ¾î¾ß ÇϹǷΠ·¹Áö½ºÆ®¸®¿¡ ÀúÀåÇØ¾ß ÇÑ´Ù. SOptionÀÇ Save¿Í Load ÇÔ¼ö¿¡¼ ÀÌ °ªµéÀ» ÀúÀåÇÏ°í Àоî¿Â´Ù. º¸´Ù½ÃÇÇ ¿É¼ÇÀÌ Ãß°¡µÉ ¶§¸¶´Ù ¼±¾ð, ÃʱâÈ, ÀúÀå, º¹±¸¸¦ ÀÏÀÏÀÌ ÇØ¾ß Çϱ⠶§¹®¿¡ ´Ù¸¥ ¿É¼ÇµéÀº ¸ðµÎ Dangeun3¿¡¼ ¹Ì¸® ¿¹ºñµ¿ÀÛÀ» ÃëÇسõÀº °ÍÀÌ´Ù. Àμ⠿ɼÇÀº ¿ö³« ¼ö°¡ ¸¹¾Æ ¿¹ºñµ¿ÀÛ¿¡¼ Á¦¿ÜµÇ¾ú´Ù.
void SOption::Load(TCHAR *Key)
{
FindDlgPos=SHRegReadInt(SHCU,szKey,"FindDlgPos",0);
....
SHRegReadString(SHCU,szKey,"PrtFaceName","",prtFont.lfFaceName,32);
prtFont.lfPitchAndFamily=SHRegReadInt(SHCU,szKey,"PrtPitchAndFamily",0);
prtFont.lfCharSet=SHRegReadInt(SHCU,szKey,"PrtCharSet",0);
prtFont.lfHeight=SHRegReadInt(SHCU,szKey,"PrtFontHeight",0);
prtMargin.left=SHRegReadInt(SHCU,szKey,"PrtMarginLeft",0);
prtMargin.top=SHRegReadInt(SHCU,szKey,"PrtMarginTop",0);
prtMargin.right=SHRegReadInt(SHCU,szKey,"PrtMarginRight",0);
prtMargin.bottom=SHRegReadInt(SHCU,szKey,"PrtMarginBottom",0);
prtbParse=SHRegReadInt(SHCU,szKey,"prtbParse",0);
prtnWrap=SHRegReadInt(SHCU,szKey,"prtnWrap",0);
prtbLineNum=SHRegReadInt(SHCU,szKey,"prtbLineNum",0);
prtbSysHeader=SHRegReadInt(SHCU,szKey,"prtbSysHeader",0);
prtbDirect=SHRegReadInt(SHCU,szKey,"prtbDirect",0);
prtbParse=SHRegReadInt(SHCU,szKey,"prtbParse",0);
prtnHeader=SHRegReadInt(SHCU,szKey,"prtnHeader",0);
prtnFooter=SHRegReadInt(SHCU,szKey,"prtnFooter",0);
SHRegReadString(SHCU,szKey,"prtHeader","",prtHeader,256);
SHRegReadString(SHCU,szKey,"prtFooter","",prtFooter,256);
SHRegReadString(SHCU,szKey,"prtBkText","",prtBkText,64);
lstrcpy(szKey,Key);
lstrcat(szKey,"Style");
....
void SOption::Save(TCHAR *Key)
{
SHRegWriteInt(SHCU,szKey,"FindDlgPos",FindDlgPos);
....
SHRegWriteString(SHCU,szKey,"PrtFaceName",prtFont.lfFaceName);
SHRegWriteInt(SHCU,szKey,"PrtPitchAndFamily",prtFont.lfPitchAndFamily);
SHRegWriteInt(SHCU,szKey,"PrtCharSet",prtFont.lfCharSet);
SHRegWriteInt(SHCU,szKey,"PrtFontHeight",prtFont.lfHeight);
SHRegWriteInt(SHCU,szKey,"PrtMarginLeft",prtMargin.left);
SHRegWriteInt(SHCU,szKey,"PrtMarginTop",prtMargin.top);
SHRegWriteInt(SHCU,szKey,"PrtMarginRight",prtMargin.right);
SHRegWriteInt(SHCU,szKey,"PrtMarginBottom",prtMargin.bottom);
SHRegWriteInt(SHCU,szKey,"prtbParse",prtbParse);
SHRegWriteInt(SHCU,szKey,"prtnWrap",prtnWrap);
SHRegWriteInt(SHCU,szKey,"prtbLineNum",prtbLineNum);
SHRegWriteInt(SHCU,szKey,"prtbSysHeader",prtbSysHeader);
SHRegWriteInt(SHCU,szKey,"prtbDirect",prtbDirect);
SHRegWriteInt(SHCU,szKey,"prtbParse",prtbParse);
SHRegWriteInt(SHCU,szKey,"prtnHeader",prtnHeader);
SHRegWriteInt(SHCU,szKey,"prtnFooter",prtnFooter);
SHRegWriteString(SHCU,szKey,"prtHeader",prtHeader);
SHRegWriteString(SHCU,szKey,"prtFooter",prtFooter);
SHRegWriteString(SHCU,szKey,"prtBkText",prtBkText);
lstrcpy(szKey,Key);
lstrcat(szKey,"Style");
....
¼±¾ð ¹× ÃʱâÈ, ÀúÀå, º¹±¸ Äڵ尡 ¸ðµÎ ÀÛ¼ºµÇ¾úÀ¸¹Ç·Î ÀÌ ¿É¼ÇµéÀº ¿µ±¸ÀûÀÎ »ý¸íÀ» °¡Áö°Ô µÇ¾ú´Ù. ´ÙÀ½Àº ¼³Á¤ ´ëÈ»óÀÚ¿¡ ÀÌ ¿É¼ÇµéÀ» º¸¿©ÁÖ°í »ç¿ëÀÚ°¡ ¼±ÅÃÇÒ ¼ö ÀÖµµ·Ï ÇÑ´Ù. ¼³Á¤ ´ëÈ»óÀÚÀÇ Àμâ ÆäÀÌÁö´Â ÀÌ¹Ì ¸¸µé¾îÁ® ÀÖÀ¸¸ç ´ÙÀ½°ú °°´Ù.
´ëÈ»óÀÚ ÇÁ·Î½ÃÀú´Â ²®µ¥±â¸¸ ¸¸µé¾îÁ® Àִµ¥ ÀÌÁ¦ ±× ³»¿ëÀ» ä¿ö º¸ÀÚ. UI ÀÛ¾÷Àº Ç×»ó Äڵ差ÀÌ Á» ¸¹´Ù.
BOOL CALLBACK PrintDlgProc(HWND hDlg,UINT iMessage,WPARAM wParam,LPARAM lParam)
{
HWND hCon;
int i,idx;
int t1,t2,t3,t4;
TCHAR szFace[32];
HMENU hMenu, hPopup;
POINT pt;
static int PopupID;
TCHAR szTemp[256];
switch(iMessage)
{
case WM_INITDIALOG:
hCon=GetDlgItem(hDlg,IDC_PRTHEADERWIDTH);
SendMessage(hCon,CB_ADDSTRING,0,(LPARAM)"¾øÀ½");
SendMessage(hCon,CB_ADDSTRING,0,(LPARAM)"0.1 mm");
SendMessage(hCon,CB_ADDSTRING,0,(LPARAM)"0.2 mm");
SendMessage(hCon,CB_ADDSTRING,0,(LPARAM)"0.3 mm");
SendMessage(hCon,CB_ADDSTRING,0,(LPARAM)"0.5 mm");
SendMessage(hCon,CB_ADDSTRING,0,(LPARAM)"0.8 mm");
SendMessage(hCon,CB_ADDSTRING,0,(LPARAM)"1 mm");
hCon=GetDlgItem(hDlg,IDC_PRTFOOTERWIDTH);
SendMessage(hCon,CB_ADDSTRING,0,(LPARAM)"¾øÀ½");
SendMessage(hCon,CB_ADDSTRING,0,(LPARAM)"0.1 mm");
SendMessage(hCon,CB_ADDSTRING,0,(LPARAM)"0.2 mm");
SendMessage(hCon,CB_ADDSTRING,0,(LPARAM)"0.3 mm");
SendMessage(hCon,CB_ADDSTRING,0,(LPARAM)"0.5 mm");
SendMessage(hCon,CB_ADDSTRING,0,(LPARAM)"0.8 mm");
SendMessage(hCon,CB_ADDSTRING,0,(LPARAM)"1 mm");
hCon=GetDlgItem(hDlg,IDC_PRTBKTEXT);
SendMessage(hCon,CB_ADDSTRING,0,(LPARAM)"ºñ¹Ð ¹®¼");
SendMessage(hCon,CB_ADDSTRING,0,(LPARAM)"¿ÜºÎ À¯Ãâ ±ÝÁö");
SendMessage(hCon,CB_ADDSTRING,0,(LPARAM)"ÃÊ¾È Ãâ·Â");
SendMessage(hCon,CB_ADDSTRING,0,(LPARAM)"ÃÖÁ¾ Ãâ·Â");
SendMessage(hCon,CB_ADDSTRING,0,(LPARAM)"°áÁ¦¿ë");
SendMessage(hCon,CB_ADDSTRING,0,(LPARAM)"Àå±â º¸°ü¿ë");
SendMessage(hCon,CB_ADDSTRING,0,(LPARAM)"¼Õ´ëÁö ¸¶!");
hCon=GetDlgItem(hDlg,IDC_PRTFONTSIZE);
SendMessage(hCon,CB_ADDSTRING,0,(LPARAM)"8");
SendMessage(hCon,CB_ADDSTRING,0,(LPARAM)"9");
SendMessage(hCon,CB_ADDSTRING,0,(LPARAM)"10");
SendMessage(hCon,CB_ADDSTRING,0,(LPARAM)"11");
SendMessage(hCon,CB_ADDSTRING,0,(LPARAM)"12");
SendMessage(hCon,CB_ADDSTRING,0,(LPARAM)"15");
SendMessage(hCon,CB_ADDSTRING,0,(LPARAM)"20");
SendMessage(hCon,CB_ADDSTRING,0,(LPARAM)"30");
hCon=GetDlgItem(hDlg,IDC_PRTWRAP);
SendMessage(hCon,CB_ADDSTRING,0,(LPARAM)"¹®¼ ¸ð¾ç ±×´ë·Î Ãâ·Â");
SendMessage(hCon,CB_ADDSTRING,0,(LPARAM)"ÇÑ±Û ±ÛÀÚ, ¿µ¹® ±ÛÀÚ");
SendMessage(hCon,CB_ADDSTRING,0,(LPARAM)"ÇÑ±Û ±ÛÀÚ, ¿µ¹® ´Ü¾î");
SendMessage(hCon,CB_ADDSTRING,0,(LPARAM)"ÇÑ±Û ´Ü¾î, ¿µ¹® ´Ü¾î");
SendDlgItemMessage(hDlg,IDC_PRTFONTFACE,CB_ADDSTRING,0,(LPARAM)"==½Ã½ºÅÛ==");
for (i=0;i<FontNum;i++) {
SendDlgItemMessage(hDlg,IDC_PRTFONTFACE,CB_ADDSTRING,0,(LPARAM)arFont[i].lfFaceName);
}
SendDlgItemMessage(hDlg,IDC_PRTLEFTSPIN,UDM_SETRANGE,0,MAKELPARAM(99,1));
SendDlgItemMessage(hDlg,IDC_PRTTOPSPIN,UDM_SETRANGE,0,MAKELPARAM(99,1));
SendDlgItemMessage(hDlg,IDC_PRTRIGHTSPIN,UDM_SETRANGE,0,MAKELPARAM(99,1));
SendDlgItemMessage(hDlg,IDC_PRTBOTTOMSPIN,UDM_SETRANGE,0,MAKELPARAM(9,1));
SendDlgItemMessage(hDlg,IDC_PRTHEADER,EM_LIMITTEXT,255,0);
SendDlgItemMessage(hDlg,IDC_PRTFOOTER,EM_LIMITTEXT,255,0);
SendDlgItemMessage(hDlg,IDC_PRTBKTEXT,CB_LIMITTEXT,63,0);
return TRUE;
case WM_COMMAND:
switch (LOWORD(wParam)) {
case IDC_PRTFONTSCREEN:
case IDC_PRTFONTPRINT:
AdjustDlgUI(5,hDlg);
PropSheet_Changed(GetParent(hDlg),hDlg);
return TRUE;
case IDC_PRTFONTFACE:
AdjustDlgUI(5,hDlg);
case IDC_PRTFONTSIZE:
case IDC_PRTWRAP:
case IDC_PRTBKTEXT:
case IDC_PRTHEADERWIDTH:
case IDC_PRTFOOTERWIDTH:
switch (HIWORD(wParam)) {
case CBN_SELCHANGE:
case CBN_EDITCHANGE:
PropSheet_Changed(GetParent(hDlg),hDlg);
break;
}
return TRUE;
case IDC_PRTLINENUM:
case IDC_PRTSYSHEADER:
case IDC_PRTDIRECT:
case IDC_PRTPARSE:
case IDC_PRTLEFTSPIN:
case IDC_PRTTOPSPIN:
case IDC_PRTRIGHTSPIN:
case IDC_PRTBOTTOMSPIN:
PropSheet_Changed(GetParent(hDlg),hDlg);
return TRUE;
case IDC_PRTHEADER:
case IDC_PRTFOOTER:
case IDC_PRTLEFT:
case IDC_PRTTOP:
case IDC_PRTRIGHT:
case IDC_PRTBOTTOM:
switch (HIWORD(wParam)) {
case EN_CHANGE:
if (bEditByCode==FALSE) {
PropSheet_Changed(GetParent(hDlg),hDlg);
}
break;
}
return TRUE;
case IDC_PRTBTNHEADER:
case IDC_PRTBTNFOOTER:
if (LOWORD(wParam)==IDC_PRTBTNHEADER) {
PopupID=IDC_PRTHEADER;
} else {
PopupID=IDC_PRTFOOTER;
}
hMenu=LoadMenu(g_hInst, MAKEINTRESOURCE(IDR_POPUP));
hPopup=GetSubMenu(hMenu, 3);
GetCursorPos(&pt);
TrackPopupMenu(hPopup, TPM_LEFTALIGN, pt.x, pt.y,
0, hDlg, NULL);
DestroyMenu(hMenu);
return TRUE;
case IDM_PRINT_FILE:
SendDlgItemMessage(hDlg,PopupID,EM_REPLACESEL,TRUE,(LPARAM)"[ÆÄÀÏ]");
SetFocus(GetDlgItem(hDlg,PopupID));
return TRUE;
case IDM_PRINT_PATH:
SendDlgItemMessage(hDlg,PopupID,EM_REPLACESEL,TRUE,(LPARAM)"[°æ·Î]");
SetFocus(GetDlgItem(hDlg,PopupID));
return TRUE;
case IDM_PRINT_DATE:
SendDlgItemMessage(hDlg,PopupID,EM_REPLACESEL,TRUE,(LPARAM)"[³¯Â¥]");
SetFocus(GetDlgItem(hDlg,PopupID));
return TRUE;
case IDM_PRINT_TIME:
SendDlgItemMessage(hDlg,PopupID,EM_REPLACESEL,TRUE,(LPARAM)"[½Ã°£]");
SetFocus(GetDlgItem(hDlg,PopupID));
return TRUE;
case IDM_PRINT_PAGE:
SendDlgItemMessage(hDlg,PopupID,EM_REPLACESEL,TRUE,(LPARAM)"[ÂÊ]");
SetFocus(GetDlgItem(hDlg,PopupID));
return TRUE;
case IDM_PRINT_TOTALPAGE:
SendDlgItemMessage(hDlg,PopupID,EM_REPLACESEL,TRUE,(LPARAM)"[ÀüüÂÊ]");
SetFocus(GetDlgItem(hDlg,PopupID));
return TRUE;
case IDM_PRINT_CENTER:
GetDlgItemText(hDlg,PopupID,szTemp,255);
if (strstr(szTemp,"[°¡¿îµ¥]") != 0) {
MessageBox(hDlg, "°¡¿îµ¥ Ãâ·Â ¿¹¾à¾î´Â ÇÑ ¹ø¹Û¿¡ ¾µ ¼ö ¾ø½À´Ï´Ù","¾Ë¸²",MB_OK);
} else {
SendDlgItemMessage(hDlg,PopupID,EM_REPLACESEL,TRUE,(LPARAM)"[°¡¿îµ¥]");
SetFocus(GetDlgItem(hDlg,PopupID));
}
return TRUE;
case IDM_PRINT_RIGHT:
GetDlgItemText(hDlg,PopupID,szTemp,255);
if (strstr(szTemp,"[¿À¸¥ÂÊ]") != 0) {
MessageBox(hDlg, "¿À¸¥ÂÊ Ãâ·Â ¿¹¾à¾î´Â ÇÑ ¹ø¹Û¿¡ ¾µ ¼ö ¾ø½À´Ï´Ù","¾Ë¸²",MB_OK);
} else {
SendDlgItemMessage(hDlg,PopupID,EM_REPLACESEL,TRUE,(LPARAM)"[¿À¸¥ÂÊ]");
SetFocus(GetDlgItem(hDlg,PopupID));
}
return TRUE;
}
break;
case WM_NOTIFY:
LPNMHDR hdr;
hdr=(LPNMHDR)lParam;
switch (hdr->code) {
case PSN_SETACTIVE:
g_StartPage=5;
bEditByCode=TRUE;
SetDlgItemInt(hDlg,IDC_PRTLEFT,NewOption.prtMargin.left,FALSE);
SetDlgItemInt(hDlg,IDC_PRTTOP,NewOption.prtMargin.top,FALSE);
SetDlgItemInt(hDlg,IDC_PRTRIGHT,NewOption.prtMargin.right,FALSE);
SetDlgItemInt(hDlg,IDC_PRTBOTTOM,NewOption.prtMargin.bottom,FALSE);
if (NewOption.prtFont.lfHeight==-1) {
CheckRadioButton(hDlg,IDC_PRTFONTSCREEN,IDC_PRTFONTPRINT,IDC_PRTFONTSCREEN);
SetDlgItemInt(hDlg,IDC_PRTFONTSIZE,10,FALSE);
SendDlgItemMessage(hDlg,IDC_PRTFONTFACE,CB_SETCURSEL,0,0);
} else {
CheckRadioButton(hDlg,IDC_PRTFONTSCREEN,IDC_PRTFONTPRINT,IDC_PRTFONTPRINT);
if (NewOption.prtFont.lfHeight == 0) {
idx=0;
SetDlgItemInt(hDlg,IDC_PRTFONTSIZE,10,FALSE);
} else {
idx=SendDlgItemMessage(hDlg,IDC_PRTFONTFACE,CB_FINDSTRING,-1,
(LPARAM)NewOption.prtFont.lfFaceName);
SetDlgItemInt(hDlg,IDC_PRTFONTSIZE,NewOption.prtFont.lfHeight,FALSE);
}
SendDlgItemMessage(hDlg,IDC_PRTFONTFACE,CB_SETCURSEL,idx,0);
}
SetDlgItemText(hDlg,IDC_PRTHEADER,NewOption.prtHeader);
SetDlgItemText(hDlg,IDC_PRTFOOTER,NewOption.prtFooter);
SetDlgItemText(hDlg,IDC_PRTBKTEXT,NewOption.prtBkText);
SendDlgItemMessage(hDlg,IDC_PRTHEADERWIDTH,CB_SETCURSEL,NewOption.prtnHeader,0);
SendDlgItemMessage(hDlg,IDC_PRTFOOTERWIDTH,CB_SETCURSEL,NewOption.prtnFooter,0);
SendDlgItemMessage(hDlg,IDC_PRTWRAP,CB_SETCURSEL,NewOption.prtnWrap,0);
CheckDlgButton(hDlg,IDC_PRTPARSE,NewOption.prtbParse ? BST_CHECKED:BST_UNCHECKED);
CheckDlgButton(hDlg,IDC_PRTSYSHEADER,NewOption.prtbSysHeader ? BST_CHECKED:BST_UNCHECKED);
CheckDlgButton(hDlg,IDC_PRTLINENUM,NewOption.prtbLineNum ? BST_CHECKED:BST_UNCHECKED);
CheckDlgButton(hDlg,IDC_PRTDIRECT,NewOption.prtbDirect ? BST_CHECKED:BST_UNCHECKED);
AdjustDlgUI(5,hDlg);
bEditByCode=FALSE;
return TRUE;
case PSN_APPLY:
ApplyNow();
return TRUE;
case PSN_KILLACTIVE:
t1=GetDlgItemInt(hDlg,IDC_PRTLEFT,NULL,FALSE);
t2=GetDlgItemInt(hDlg,IDC_PRTTOP,NULL,FALSE);
t3=GetDlgItemInt(hDlg,IDC_PRTRIGHT,NULL,FALSE);
t4=GetDlgItemInt(hDlg,IDC_PRTBOTTOM,NULL,FALSE);
if (t1<0 || t1>100 || t2<0 || t2>100 || t3<0 || t3>100 || t4<0 || t4>100) {
MessageBox(hDlg,"¿©¹éÀº 0~100»çÀÌ¿©¾ß ÇÕ´Ï´Ù.","¾Ë¸²",MB_OK);
SetWindowLong(hDlg,DWL_MSGRESULT,TRUE);
return TRUE;
}
i=GetDlgItemInt(hDlg,IDC_PRTFONTSIZE,NULL,FALSE);
if (i < 6 || i > 72) {
MessageBox(hDlg,"±Û²ÃÀÇ Å©±â´Â 6~72»çÀÌÀÇ °ªÀ» ÁöÁ¤ÇØ¾ß ÇÕ´Ï´Ù","¾Ë¸²",MB_OK);
SetWindowLong(hDlg,DWL_MSGRESULT,TRUE);
return TRUE;
}
NewOption.prtMargin.left=t1;
NewOption.prtMargin.top=t2;
NewOption.prtMargin.right=t3;
NewOption.prtMargin.bottom=t4;
if (IsDlgButtonChecked(hDlg,IDC_PRTFONTSCREEN)) {
NewOption.prtFont.lfHeight=-1;
} else {
idx=SendDlgItemMessage(hDlg,IDC_PRTFONTFACE,CB_GETCURSEL,0,0);
if (idx==0) {
NewOption.prtFont.lfHeight=0;
} else {
SendDlgItemMessage(hDlg,IDC_PRTFONTFACE,CB_GETLBTEXT,idx,(LPARAM)szFace);
for (i=0;i<FontNum;i++) {
if (lstrcmp(szFace,arFont[i].lfFaceName) == 0)
break;
}
NewOption.prtFont=arFont[i];
NewOption.prtFont.lfHeight=GetDlgItemInt(hDlg,IDC_PRTFONTSIZE,NULL,FALSE);
}
}
GetDlgItemText(hDlg,IDC_PRTHEADER,NewOption.prtHeader,256);
GetDlgItemText(hDlg,IDC_PRTFOOTER,NewOption.prtFooter,256);
NewOption.prtnHeader=SendDlgItemMessage(hDlg,IDC_PRTHEADERWIDTH,CB_GETCURSEL,0,0);
NewOption.prtnFooter=SendDlgItemMessage(hDlg,IDC_PRTFOOTERWIDTH,CB_GETCURSEL,0,0);
NewOption.prtbParse=IsDlgButtonChecked(hDlg,IDC_PRTPARSE) ? TRUE:FALSE;
NewOption.prtbLineNum=IsDlgButtonChecked(hDlg,IDC_PRTLINENUM) ? TRUE:FALSE;
NewOption.prtbSysHeader=IsDlgButtonChecked(hDlg,IDC_PRTSYSHEADER) ? TRUE:FALSE;
NewOption.prtbDirect=IsDlgButtonChecked(hDlg,IDC_PRTDIRECT) ? TRUE:FALSE;
GetDlgItemText(hDlg,IDC_PRTBKTEXT,NewOption.prtBkText,64);
NewOption.prtnWrap=SendDlgItemMessage(hDlg,IDC_PRTWRAP,CB_GETCURSEL,0,0);
return TRUE;
}
break;
}
return FALSE;
}
´Ù¸¥ ¼³Á¤ ÆäÀÌÁö¿¡ ºñÇØ Æ¯º°È÷ ´Ù¸£Áö ¾ÊÀ¸¹Ç·Î ºÐ¼®ÇÒ ÇÊ¿ä´Â ¾øÀ» °ÍÀÌ´Ù. Àμ⠰ü·Ã ¿É¼ÇµéÀº º¯°æ ÈÄ ¹Ù·Î Àû¿ëµÇ´Â °ÍÀÌ ¾Æ´Ï¹Ç·Î ApplyNow³ª SetSetting¿¡¼´Â ¾Æ¹«°Íµµ ÇÒ ÇÊ¿ä°¡ ¾ø´Ù. ÀÌ ¿É¼ÇµéÀº ÀμâÇϱâ Àü¿¡´Â »ç¿ëµÇÁö ¾Ê´Â´Ù.