¸¶. º¸±â

µÎ ¹ø° ÆäÀÌÁöÀÎ º¸±â ÆäÀÌÁö´Â ÇÁ·Î±×·¥ÀÇ ´Ù¾çÇÑ ¸ð¾ç¿¡ ´ëÇÑ ¿É¼ÇÀ» °¡Áö°í ÀÖÀ¸¸ç ÀÌ ÆäÀÌÁö¸¦ ÅëÇØ »ç¿ëÀÚ°¡ ÆíÁý±â¸¦ ¿øÇÏ´Â ¸ð¾çÀ¸·Î Á÷Á¢ º¯°æÇÒ ¼ö ÀÖ´Ù.

¸¹Àº ¿É¼ÇµéÀÌ Àִµ¥ Åø¹Ù ¿É¼ÇÀ» Á¦¿ÜÇÏ°í´Â ¸ðµÎ ApiEdit ÄÁÆ®·ÑÀÇ ¿É¼ÇÀ̸ç Áö±Ý±îÁöÀÇ ½Ç½ÀÀ» ÅëÇØ ÀÌ¹Ì ÀÛ¼ºÇß´ø ±â´ÉµéÀÌ´Ù. ÀÌ ´ëÈ­»óÀÚÀÇ ÇÁ·Î½ÃÀú´Â ´ÙÀ½°ú °°ÀÌ ÀÛ¼ºÇÑ´Ù.

 

BOOL CALLBACK ViewDlgProc(HWND hDlg,UINT iMessage,WPARAM wParam,LPARAM lParam)

{

     HWND hCon;

     int i,idx;

     int tint;

     TCHAR szFace[32];

 

     switch(iMessage)

     {

     case WM_INITDIALOG:

          hCon=GetDlgItem(hDlg,IDC_LINEHEIGHT);

          SendMessage(hCon,CB_ADDSTRING,0,(LPARAM)"100");

          SendMessage(hCon,CB_ADDSTRING,0,(LPARAM)"120");

          SendMessage(hCon,CB_ADDSTRING,0,(LPARAM)"150");

          SendMessage(hCon,CB_ADDSTRING,0,(LPARAM)"200");

          SendMessage(hCon,CB_ADDSTRING,0,(LPARAM)"250");

          SendMessage(hCon,CB_ADDSTRING,0,(LPARAM)"300");

 

          hCon=GetDlgItem(hDlg,IDC_FONTSIZE);

          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_CARETWIDTH);

          SendMessage(hCon,CB_ADDSTRING,0,(LPARAM)"1");

          SendMessage(hCon,CB_ADDSTRING,0,(LPARAM)"2");

          SendMessage(hCon,CB_ADDSTRING,0,(LPARAM)"3");

          SendMessage(hCon,CB_ADDSTRING,0,(LPARAM)"4");

 

          hCon=GetDlgItem(hDlg,IDC_SEL);

          SendMessage(hCon,CB_ADDSTRING,0,(LPARAM)"¼û±è");

          SendMessage(hCon,CB_ADDSTRING,0,(LPARAM)"È帮°Ô Ç¥½Ã");

          SendMessage(hCon,CB_ADDSTRING,0,(LPARAM)"Ç×»ó Ç¥½Ã");

 

          hCon=GetDlgItem(hDlg,IDC_CUR);

          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_WRAP);

          SendMessage(hCon,CB_ADDSTRING,0,(LPARAM)"ÇÑ±Û ±ÛÀÚ, ¿µ¹® ±ÛÀÚ");

          SendMessage(hCon,CB_ADDSTRING,0,(LPARAM)"ÇÑ±Û ±ÛÀÚ, ¿µ¹® ´Ü¾î");

          SendMessage(hCon,CB_ADDSTRING,0,(LPARAM)"ÇÑ±Û ´Ü¾î, ¿µ¹® ´Ü¾î");

 

          SendDlgItemMessage(hDlg,IDC_FONTFACE,CB_ADDSTRING,0,(LPARAM)"==½Ã½ºÅÛ==");

          for (i=0;i<FontNum;i++) {

              SendDlgItemMessage(hDlg,IDC_FONTFACE,CB_ADDSTRING,0,(LPARAM)arFont[i].lfFaceName);

          }

 

          return TRUE;

     case WM_COMMAND:

          switch (LOWORD(wParam)) {

          case IDC_FONTFACE:

              AdjustDlgUI(1,hDlg);

          case IDC_FONTSIZE:

          case IDC_LINEHEIGHT:

          case IDC_CARETWIDTH:

          case IDC_SEL:

          case IDC_CUR:

          case IDC_WRAP:

              switch (HIWORD(wParam)) {

              case CBN_SELCHANGE:

              case CBN_EDITCHANGE:

                   PropSheet_Changed(GetParent(hDlg),hDlg);

                   break;

              }

              return TRUE;

          case IDC_MARGIN:

              AdjustDlgUI(1,hDlg);

          case IDC_LINENUM:

          case IDC_WORDWRAP:

          case IDC_HANGUL:

          case IDC_SHOWENTER:

          case IDC_SHOWTAB:

          case IDC_SHOWSPACE:

          case IDC_HIDECURLINE:

          case IDC_TOOLBARBIG:

          case IDC_TOOLBARTEXT:

          case IDC_NOFIRSTSPACE:

              PropSheet_Changed(GetParent(hDlg),hDlg);

              return TRUE;

          case IDC_RIGHTWRAP:

          case IDC_COLMARK:

              if (HIWORD(wParam) == EN_CHANGE) {

                   if (bEditByCode==FALSE) {

                        PropSheet_Changed(GetParent(hDlg),hDlg);

                   }

              }

              return TRUE;

          }

          break;

     case WM_NOTIFY:

          switch (((LPNMHDR)lParam)->code) {

          case PSN_SETACTIVE:

              g_StartPage=1;

              SetDlgItemInt(hDlg,IDC_LINEHEIGHT,NewOption.LineRatio,FALSE);

 

              CheckDlgButton(hDlg,IDC_MARGIN,NewOption.bShowMargin ? BST_CHECKED:BST_UNCHECKED);

              CheckDlgButton(hDlg,IDC_LINENUM,NewOption.bShowLineNum ? BST_CHECKED:BST_UNCHECKED);

              CheckDlgButton(hDlg,IDC_WORDWRAP,NewOption.bWrap ? BST_CHECKED:BST_UNCHECKED);

              CheckDlgButton(hDlg,IDC_HANGUL,NewOption.Hangul ? BST_CHECKED:BST_UNCHECKED);

              CheckDlgButton(hDlg,IDC_SHOWENTER,NewOption.bShowEnter ? BST_CHECKED:BST_UNCHECKED);

              CheckDlgButton(hDlg,IDC_SHOWTAB,NewOption.bShowTab ? BST_CHECKED:BST_UNCHECKED);

              CheckDlgButton(hDlg,IDC_SHOWSPACE,NewOption.bShowSpace ? BST_CHECKED:BST_UNCHECKED);

              CheckDlgButton(hDlg,IDC_HIDECURLINE,NewOption.bHideCurLine ? BST_CHECKED:BST_UNCHECKED);

              CheckDlgButton(hDlg,IDC_TOOLBARBIG,NewOption.bToolBarBig ? BST_CHECKED:BST_UNCHECKED);

              CheckDlgButton(hDlg,IDC_TOOLBARTEXT,NewOption.bToolBarText ? BST_CHECKED:BST_UNCHECKED);

              CheckDlgButton(hDlg,IDC_NOFIRSTSPACE,NewOption.bNoFirstSpace ? BST_CHECKED:BST_UNCHECKED);

 

              if (NewOption.logfont.lfHeight == 0) {

                   idx=0;

                   SetDlgItemInt(hDlg,IDC_FONTSIZE,10,FALSE);

                   EnableWindow(GetDlgItem(hDlg,IDC_FONTSIZE),FALSE);

              } else {

                   idx=SendDlgItemMessage(hDlg,IDC_FONTFACE,CB_FINDSTRING,-1,

                        (LPARAM)NewOption.logfont.lfFaceName);

                   SetDlgItemInt(hDlg,IDC_FONTSIZE,NewOption.logfont.lfHeight,FALSE);

              }

              SendDlgItemMessage(hDlg,IDC_FONTFACE,CB_SETCURSEL,idx,0);

 

              SendDlgItemMessage(hDlg,IDC_SEL,CB_SETCURSEL,NewOption.HideSelType,0);

              SendDlgItemMessage(hDlg,IDC_CUR,CB_SETCURSEL,NewOption.nShowCurLine,0);

              SendDlgItemMessage(hDlg,IDC_WRAP,CB_SETCURSEL,NewOption.nWrap-1,0);

              SendDlgItemMessage(hDlg,IDC_CARETWIDTH,CB_SETCURSEL,NewOption.CaretWidth-1,0);

              bEditByCode=TRUE;

              SetDlgItemInt(hDlg,IDC_RIGHTWRAP,NewOption.RightWrap,FALSE);

              SetDlgItemInt(hDlg,IDC_COLMARK,NewOption.ColMark,FALSE);

              bEditByCode=FALSE;

              AdjustDlgUI(1,hDlg);

              return TRUE;

          case PSN_APPLY:

              ApplyNow();

              return TRUE;

          case PSN_KILLACTIVE:

              tint=GetDlgItemInt(hDlg,IDC_LINEHEIGHT,NULL,FALSE);

              if (tint < 100 || tint > 1000) {

                   MessageBox(hDlg,"ÁÙ°£Àº 100~1000»çÀÌÀÇ °ªÀ» ÁöÁ¤ÇØ¾ß ÇÕ´Ï´Ù","¾Ë¸²",MB_OK);

                   SetWindowLong(hDlg,DWL_MSGRESULT,TRUE);

                   return TRUE;

              }

 

              tint=GetDlgItemInt(hDlg,IDC_FONTSIZE,NULL,FALSE);

              if (tint < 6 || tint > 72) {

                   MessageBox(hDlg,"±Û²ÃÀÇ Å©±â´Â 6~72»çÀÌÀÇ °ªÀ» ÁöÁ¤ÇØ¾ß ÇÕ´Ï´Ù","¾Ë¸²",MB_OK);

                   SetWindowLong(hDlg,DWL_MSGRESULT,TRUE);

                   return TRUE;

              }

 

              NewOption.LineRatio=GetDlgItemInt(hDlg,IDC_LINEHEIGHT,NULL,FALSE);

              NewOption.bShowMargin=IsDlgButtonChecked(hDlg,IDC_MARGIN) ? TRUE:FALSE;

              NewOption.bShowLineNum=IsDlgButtonChecked(hDlg,IDC_LINENUM) ? TRUE:FALSE;

              NewOption.bWrap=IsDlgButtonChecked(hDlg,IDC_WORDWRAP) ? TRUE:FALSE;

              NewOption.Hangul=IsDlgButtonChecked(hDlg,IDC_HANGUL) ? TRUE:FALSE;

              NewOption.bShowEnter=IsDlgButtonChecked(hDlg,IDC_SHOWENTER) ? TRUE:FALSE;

              NewOption.bShowTab=IsDlgButtonChecked(hDlg,IDC_SHOWTAB) ? TRUE:FALSE;

              NewOption.bShowSpace=IsDlgButtonChecked(hDlg,IDC_SHOWSPACE) ? TRUE:FALSE;

              NewOption.bHideCurLine=IsDlgButtonChecked(hDlg,IDC_HIDECURLINE) ? TRUE:FALSE;

              NewOption.bToolBarBig=IsDlgButtonChecked(hDlg,IDC_TOOLBARBIG) ? TRUE:FALSE;

              NewOption.bToolBarText=IsDlgButtonChecked(hDlg,IDC_TOOLBARTEXT) ? TRUE:FALSE;

              NewOption.bNoFirstSpace=IsDlgButtonChecked(hDlg,IDC_NOFIRSTSPACE) ? TRUE:FALSE;

 

              idx=SendDlgItemMessage(hDlg,IDC_FONTFACE,CB_GETCURSEL,0,0);

              if (idx==0) {

                   NewOption.logfont.lfHeight=0;

              } else {

                   SendDlgItemMessage(hDlg,IDC_FONTFACE,CB_GETLBTEXT,idx,(LPARAM)szFace);

                   for (i=0;i<FontNum;i++) {

                        if (lstrcmp(szFace,arFont[i].lfFaceName) == 0)

                             break;

                   }

                   NewOption.logfont=arFont[i];

                   NewOption.logfont.lfHeight=GetDlgItemInt(hDlg,IDC_FONTSIZE,NULL,FALSE);

              }

 

              NewOption.HideSelType=SendDlgItemMessage(hDlg,IDC_SEL,CB_GETCURSEL,0,0);

              NewOption.nShowCurLine=SendDlgItemMessage(hDlg,IDC_CUR,CB_GETCURSEL,0,0);

              NewOption.nWrap=SendDlgItemMessage(hDlg,IDC_WRAP,CB_GETCURSEL,0,0)+1;

              NewOption.CaretWidth=SendDlgItemMessage(hDlg,IDC_CARETWIDTH,CB_GETCURSEL,0,0)+1;

              NewOption.RightWrap=GetDlgItemInt(hDlg,IDC_RIGHTWRAP,NULL,FALSE);

              NewOption.ColMark=GetDlgItemInt(hDlg,IDC_COLMARK,NULL,FALSE);

              return TRUE;

          }

          break;

     }

     return FALSE;

}

 

ÇÔ¼öÀÇ ±¸Á¶´Â ÀÏ¹Ý ÆäÀÌÁö¿Í °ÅÀÇ ºñ½ÁÇÏ´Ù. ¾Æ´Ï ºñ½ÁÇÑ Á¤µµ°¡ ¾Æ´Ï¶ó ¿ÏÀüÈ÷ °°Àº ²ÃÀÌ´Ù. ÀÏ¹Ý ÆäÀÌÁö¿Í ºñ±³ÇØ º¼ ¶§ ´ëÈ­»óÀÚÀÇ ÄÁÆ®·Ñ°ú °ü¸®ÇÏ´Â ¿É¼ÇÀÇ Á¾·ù°¡ ´Ù¸¥ °Í ¿Ü¿¡´Â º°´Ù¸¥ Â÷ÀÌÁ¡ÀÌ ¾ø´Ù. ÄÞº¸¹Ú½º¸¦ ¸¹ÀÌ »ç¿ëÇϱ⠶§¹®¿¡ WM_INITDIALOGÀÇ ÃʱâÈ­ Äڵ尡 ±æ¸ç ±Û²Ã ÄÞº¸¹Ú½º´Â Config ÇÔ¼ö¿¡¼­ ¹Ì¸® Á¶»çÇسõÀº ÆùÆ® ¸ñ·Ï(arFont)À¸·Î ÃʱâÈ­ÇÏ¿© À̸§À¸·Î ±Û²ÃÀ» ¼±ÅÃÇÒ ¼ö ÀÖµµ·Ï Çß´Ù.

PSN_KILLACTIVE¿¡¼­´Â ÄÁÆ®·Ñ·ÎºÎÅÍ °ªÀ» Àбâ Àü¿¡ ÁÙ°£°ú ±Û²ÃÀÇ Å©±â°¡ À¯È¿ÇÑÁö¸¦ ¸ÕÀú Á¡°ËÇÑ´Ù. ÁÙ°£Àº 100~1000±îÁö°¡ À¯È¿ÇÏ¸ç ±Û²ÃÀº 6~72±îÁö¸¸ ÀÎÁ¤ÇÑ´Ù. ¸¸¾à À¯È¿ÇÏÁö ¸øÇÑ °ªÀ» ÀÔ·ÂÇßÀ» ¶§´Â FALSE¸¦ ¸®ÅÏÇÏ¿© ÀÌ ÆäÀÌÁö¸¦ ¶°³ªÁö ¸øÇϵµ·Ï ÇÏ¿´´Ù. ´ëÈ­»óÀÚÀÇ ÅëÁö ¸Þ½ÃÁö°¡ ¸®ÅÏ°ªÀ» ¸®ÅÏÇÒ ¶§´Â return¹®À¸·Î ¸®ÅÏÇÏ´Â °ÍÀÌ ¾Æ´Ï¶ó DWL_MSGRESULT¿¡ ¸®ÅÏ°ªÀ» ´ëÀÔÇØ¾ß ÇÔÀ» À¯ÀÇÇÏÀÚ.

ÀÌ ´ëÈ­»óÀÚ´Â ¿ì¸®°¡ ¾Õ¿¡¼­ ÀÌ¹Ì ¸¸µé¾ú´ø Ä£¼÷ÇÑ ¿É¼ÇÀ» ó¸®ÇÏ°í ÀÖÀ¸¹Ç·Î ÀÌ ¿É¼ÇµéÀÌ ¾î¶»°Ô Ç¥½ÃµÇ°í º¯°æµÇ´ÂÁö¸¦ »ìÆì º¸µµ·Ï ÇÏÀÚ. ´ëÇ¥ÀûÀ¸·Î üũ¹Ú½ºÀÎ ¸¶Áø¿µ¿ª Ç¥½Ã ¿É¼Ç°ú ÄÞº¸¹Ú½ºÀÎ ºñÈ°¼ºÈ­½Ã ¼±Åÿµ¿ª ¿É¼ÇÀÇ °æ¿ì¸¸ º¸¸é ³ª¸ÓÁö ¿É¼Çµéµµ °°Àº ¹æ½ÄÀ¸·Î ÀÌÇØÇÒ ¼ö ÀÖÀ» °ÍÀÌ´Ù.

¸¶Áø ¿µ¿ª Ç¥½Ã ¿É¼ÇÀº üũ¹Ú½º(IDC_MARGIN)·Î Ç¥ÇöµÇ±â ¶§¹®¿¡ º°µµÀÇ ÃʱâÈ­°¡ ÇÊ¿ä¾øÀ¸¸ç µû¶ó¼­ WM_INITDIALOG¿¡¼­´Â ÀÌ ÄÁÆ®·Ñ¿¡ ´ëÇؼ­´Â ¾Æ¹«°Íµµ ÇÏÁö ¾Ê´Â´Ù. PSN_SETACTIVE¿¡¼­´Â ÀÌ ÄÁÆ®·Ñ°ú ´ëÀÀµÇ´Â NewOption.bShowMargin º¯¼ö°ªÀ» Àоî üũ¹Ú½º¿¡ »óŸ¦ Ç¥½ÃÇϸç À̶§´Â CheckDlgButton ÇÔ¼ö°¡ »ç¿ëµÇ¾ú´Ù. NewOption.bShowMarginÀÌ TRUEÀ̸é ÀÌ ÄÁÆ®·ÑÀ» BST_CHECKED·Î ¸¸µé°í ¾Æ´Ï¸é BST_UNCHECKED·Î ¸¸µé¾î »ç¿ëÀÚ¿¡°Ô ÇöÀç ¸¶Áø¿µ¿ª Ç¥½Ã ¿É¼ÇÀÌ ¾î¶»°Ô ¼³Á¤µÇ¾î ÀÖ´ÂÁö¸¦ º¸¿©ÁØ´Ù.

´ëÈ­»óÀÚ°¡ ´ÝÈú ¶§ÀÎ PSN_KILLACTIVE¿¡¼­´Â ¹Ý´ë·Î IDC_MARGIN ÄÁÆ®·ÑÀÇ Ã¼Å© »óŸ¦ È®ÀÎÇÏ¿© NewOption.bShowMarginº¯¼ö°ªÀ» º¯°æÇÑ´Ù. »ç¿ëÀÚ°¡ üũ¹Ú½º¸¦ üũÇßÀ¸¸é ÀÌ º¯¼ö¸¦ TRUE·Î º¯°æÇÏ°í üũÇÏÁö ¾Ê¾ÒÀ¸¸é FALSE·Î º¯°æÇÑ´Ù. ¹°·Ð ÀÌ ¿É¼ÇÀ» °Çµå¸®Áö ¾Ê¾Ò´Ù¸é ¿ø·¡ÀÇ °ªÀ» ±×´ë·Î À¯ÁöÇÒ °ÍÀÌ´Ù.

WM_COMMAND¿¡¼­´Â »ç¿ëÀÚ°¡ ÀÌ Ã¼Å©¹Ú½º¸¦ Á¶ÀÛÇÒ ¶§ AdjustDlgUI ÇÔ¼ö¸¦ È£ÃâÇÏ¿© ÀÌ ¿É¼Ç¿¡ Á¾¼ÓµÇ´Â ÁÙ¹øÈ£ º¸±â üũ¹Ú½º(IDC_LINENUM)À» °ü¸®ÇÑ´Ù. ¸¶Áø¿µ¿ªÀÌ º¸ÀÌ´Â »óÅ¿¡¼­¸¸ ÁÙ¹øÈ£ º¸±â üũ¹Ú½º¸¦ º¯°æÇÒ ¼ö ÀÖ´Ù. »ç¿ëÀÚ°¡ üũ¹Ú½º¸¦ °Çµå·ÈÀ¸¸é ¿É¼Ç¿¡ º¯È­°¡ »ý°åÀ¸¹Ç·Î Àû¿ë ¹öÆ°À» È°¼ºÈ­ÇÑ´Ù. ±×·¡¼­ AdjustDlgUI È£Ãâ¹® ´ÙÀ½¿¡ break°¡ »ý·«µÇ¾î ÀÖ°í PropSheet_Changed ÇÔ¼öµµ °°ÀÌ È£ÃâµÈ´Ù.

´ÙÀ½Àº ºñÈ°¼ºÈ­½Ã ¼±Åÿµ¿ª ¿É¼ÇÀ» ó¸®ÇÏ´Â IDC_SEL ÄÞº¸¹Ú½º¸¦ º¸ÀÚ. WM_INITDIALOG¿¡¼­ ÄÞº¸¹Ú½º¿¡ ¼±Åà °¡´ÉÇÑ Ç׸ñµéÀ» Ãß°¡ÇÑ´Ù. À̶§ ÄÞº¸¹Ú½ºÀÇ Ç׸ñ ¼ø¼­´Â HideSelType ¿É¼Ç°ª°ú ÀÏÄ¡½ÃÅ´À¸·Î½á ÄÞº¸¹Ú½ºÀÇ À妽º°¡ °ð ¿É¼Ç°ª°ú °°µµ·Ï ÇÏ¿´´Ù. PSN_SETACTIVE¿¡¼­ NewOption.HideSelType º¯¼ö°ªÀ¸·Î ÄÞº¸¹Ú½ºÀÇ À妽º¸¦ ÃʱâÈ­ÇÏ¿© ÇöÀç ¼±Åà »óŸ¦ º¸¿©ÁÖ¾úÀ¸¸ç PSN_KILLACTIVE¿¡¼­ ÄÞº¸¹Ú½ºÀÇ À妽º¸¦ NewOption.HideSelType º¯¼ö·Î ´Ù½Ã ´ëÀÔÇÏ¿´´Ù.

WM_COMMAND¿¡¼­´Â CBN_SELCHANGE, CBN_EDITCHANGE ÅëÁö ¸Þ½ÃÁö¸¦ ¹Þ¾ÒÀ» ¶§¸¸ Àû¿ë ¹öÆ°À» È°¼ºÈ­ÇÑ´Ù. ÀÌ µÎ ¸Þ½ÃÁö ¿ÜÀÇ ´Ù¸¥ ÄÞº¸¹Ú½º ÅëÁö ¸Þ½ÃÁö, ¿¹¸¦ µé¾î µå·Ó ´Ù¿î ¸®½ºÆ®¹Ú½º°¡ ¿­·È´Ù´Â CBN_DROPDOWNÀ̳ª Æ÷Ä¿½º¸¦ ¹Þ¾Ò´Ù´Â CBN_SETFOCUS µîÀº ¿É¼Ç°ªÀÇ º¯°æ°ú´Â ¹«°üÇϹǷΠÀ̶§´Â Àû¿ë ¹öÆ°À» È°¼ºÈ­Çؼ­´Â ¾ÈµÈ´Ù. IDC_SEL ÄÞº¸¹Ú½º¿¡ ´ëÇÑ Ã³¸®°¡ ÀÌ·¸°Ô °£´ÜÇÑ ÀÌÀ¯´Â HideSelType ¿É¼Ç°ú ÀÌ ÄÞº¸¹Ú½ºÀÇ Ç׸ñ À妽º°¡ ÀÏÄ¡Çϸç ÀÌ ÄÞº¸¹Ú½º¿¡ CBS_SORT ½ºÅ¸ÀÏÀÌ ¾ø±â ¶§¹®ÀÌ´Ù.

¹Ý¸é ±Û²Ã ÄÞº¸¹Ú½º´Â ¿É¼Ç ÀÚü°¡ Á¤¼ö°¡ ¾Æ´Ï°í lfHeight°¡ 0ÀÌ¸é ½Ã½ºÅÛ ±Û²ÃÀ̶ó´Â Ư¼ö°ªÀÌ Á¸ÀçÇϱ⠶§¹®¿¡ ¿É¼ÇÀ» º¸¿©ÁÖ°í µÇµ¹·Á ¹Þ´Â °úÁ¤ÀÌ ÈξÀ ´õ º¹ÀâÇÏ´Ù. ±Û²Ã À̸§À¸·Î ÄÞº¸¹Ú½ºÀÇ À妽º¸¦ ã¾Æ¾ß Çϸç PSN_KILLACTIVE¿¡¼­´Â ¼±ÅÃÇÑ ±Û²Ã À̸§À¸·ÎºÎÅÍ arFont ¹è¿­ÀÇ À妽º¸¦ ¸ÕÀú ã°í ÀÌ À妽ºÀÇ ÆùÆ®¸¦ NewOption.logfont¿¡ ´ëÀÔÇØ¾ß ÇÑ´Ù. ÀÌ ÄÞº¸¹Ú½º´Â CBS_SORT ½ºÅ¸ÀÏÀ» °¡Áö¹Ç·Î ÄÞº¸¹Ú½ºÀÇ À妽º·ÎºÎÅÍ ¹Ù·Î arFont ¹è¿­ÀÇ À妽º¸¦ ãÀ» ¼ö°¡ ¾ø´Ù. ¶ÇÇÑ lfHeight°¡ 0ÀÎ °æ¿ì¸¦ Ç×»ó µû·Î Á¡°ËÇÒ ÇÊ¿äµµ ÀÖ´Ù.