°¡. Àμ⠿ɼÇ

È£½ºÆ®°¡ Àμ⸦ À§ÇØ Á¦ÀÏ ¸ÕÀú ÇØ¾ß ÇÒ ÀÏÀº Àμ⠿ɼÇÀ» °ü¸®ÇÏ´Â ÀÏÀÌ´Ù. »ç¿ëÀÚ´Â Àμâ½Ã »ç¿ëÇÒ ±Û²Ã, Á¤·Ä¹æ½Ä, ¹®¹ý ºÐ¼® ¹æ¹ý, ÁÙ¹øÈ£ Ãâ·Â ¿©ºÎ µîÀ» ¼±ÅÃÇÒ ¼ö Àִµ¥ ÀÌ·± ¿É¼ÇµéÀº È­¸éÃâ·Â¿¡µµ ÀÌ¹Ì ÀÖ´Â °ÍµéÀÌ´Ù. ÇÏÁö¸¸ »ç¿ëÀÚµéÀÌ Ç×»ó È­¸é¿¡ º¸´Â ´ë·Î ÀμâÇϱ⸦ ¿øÇÏ´Â °ÍÀº ¾Æ´Ï¹Ç·Î Àμâ¿ë ¿É¼ÇÀ» µû·Î °ü¸®ÇÑ´Ù. È­¸é¿¡´Â ÁÙ¹øÈ£¸¦ Ç¥½ÃÇÏÁö ¾Ê´õ¶óµµ ÀμâÇÒ ¶§´Â ÁÙ¹øÈ£¸¦ ¿øÇÒ ¼öµµ ÀÖ°í È­¸é ±Û²Ã°ú Àμ⠱۲ÃÀº ´ç¿¬È÷ ´Ù¸¦ ¼ö ÀÖ´Ù. ¸¸¾à Àμ⠿ɼÇÀ» µû·Î µÎÁö ¾Ê´Â´Ù¸é »ç¿ëÀÚµéÀº Àμ⿡ ÀûÇÕÇÑ ¿É¼ÇÀ» ¼±ÅÃÇÑ ÈÄ ÀμâÇØ¾ß ÇÏ´Â ¹ø°Å·Î¿òÀÌ ÀÖÀ» °ÍÀÌ´Ù.

ÀÌ ¿Ü¿¡ ¿ëÁöÀÇ ¿©¹é, ¹Ù·Î Àμâ, ¸Ó¸®¸», ²¿¸®¸», ¹è°æ ÅؽºÆ® µîÀÇ Àμâ Àü¿ë ¿É¼Çµéµµ ÇÊ¿äÇÏ´Ù. ¿É¼Ç ±¸Á¶Ã¼ÀÎ 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¿¡¼­´Â ¾Æ¹«°Íµµ ÇÒ ÇÊ¿ä°¡ ¾ø´Ù. ÀÌ ¿É¼ÇµéÀº ÀμâÇϱâ Àü¿¡´Â »ç¿ëµÇÁö ¾Ê´Â´Ù.