´Ù.±×¸®µå ¼³Á¤ º¯°æ

±×¸®µå °ü·Ã º¯¼öÀÇ µðÆúÆ®°ªÀ» ¹«³­ÇÏ°Ô ¼³Á¤ÇßÁö¸¸ »ç¿ëÀÚÀÇ ÃëÇâ¿¡ µû¶ó º¯°æÇÒ ¼ö ÀÖµµ·Ï ÇØ¾ß ÇÑ´Ù. ¾î¶² »ç¶÷Àº ±×¸®µå¸¦ Á» ´õ ÃÎÃÎÇÏ°Ô ÁöÁ¤Çϱ⸦ ¹Ù¶ö ¼öµµ ÀÖ°í ¶Ç ¾î¶² »ç¶÷Àº ±×¸®µå ±â´ÉÀº ¾²µÇ ¾È³»¼±Àº º¸°í ½ÍÁö ¾ÊÀ» ¼öµµ Àֱ⠶§¹®ÀÌ´Ù. ´ëÈ­»óÀÚ¸¦ ÅëÇØ ±×¸®µå¿Í °ü·ÃµÈ º¯¼ö¸¦ º¸¿© ÁÖ°í º¯°æÇÒ ¼ö ÀÖµµ·Ï ÇØ º¸ÀÚ. ¸®¼Ò½º¿¡´Â ÀÌ¹Ì ±×¸®µå ÆíÁý ´ëÈ­»óÀÚÀÇ ÅÛÇø®Æ®°¡ ÀÛ¼ºµÇ¾î ÀÖ´Ù.

ÅÛÇø®Æ®ÀÇ ¸ð¾çÀ» º¸¸é ÄÁÆ®·Ñ°ú º¯¼öÀÇ ´ëÀÀ°ü°è¸¦ ½±°Ô ÁüÀÛÇÒ ¼ö ÀÖÀ» °ÍÀÌ´Ù. Á¤¼öÇü°ú BOOLÇü º¯¼öÀÇ °ªÀ» ÀÔ·Â¹Þ¾Æ¾ß ÇϹǷΠ¿¡µðÆ®¿Í üũ ¹Ú½º¸¦ »ç¿ëÇßÀ¸¸ç ¿¡µðÆ®´Â Number ½ºÅ¸ÀÏÀ» ÁÖ¾î ¼ýÀÚ ÀÌ¿ÜÀÇ ¹®ÀÚ´Â ÀÔ·ÂÇÏÁö ¸øÇϵµ·Ï Çß´Ù. ´ëÈ­»óÀÚ ÇÁ·Î½ÃÀú´Â ÀÌ ´ëÈ­»óÀÚ¿¡ ÇöÀç ¼³Á¤ »óŸ¦ º¸¿© ÁÖ°í »ç¿ëÀÚ°¡ ÆíÁýÇÑ °ªÀ» ´Ù½Ã º¯¼ö·Î ÀÐ¾î µéÀ̱⸸ ÇÏ¸é µÈ´Ù.

 

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

{

   switch(iMessage) {

   case WM_INITDIALOG:

      SetDlgItemInt(hDlg,IDC_EDGRIDX,GridX,FALSE);

      SetDlgItemInt(hDlg,IDC_EDGRIDY,GridY,FALSE);

      SetDlgItemInt(hDlg,IDC_EDGRIDLINEX,GridLineX,FALSE);

      SetDlgItemInt(hDlg,IDC_EDGRIDLINEY,GridLineY,FALSE);

      if (bGrid) CheckDlgButton(hDlg,IDC_CHKGRID,BST_CHECKED);

      if (bGridLine) CheckDlgButton(hDlg,IDC_CHKGRIDLINE,BST_CHECKED);

      return TRUE;

   case WM_COMMAND:

      switch (LOWORD(wParam)) {

      case IDOK:

          GridX=GetDlgItemInt(hDlg,IDC_EDGRIDX,NULL,FALSE);

          GridY=GetDlgItemInt(hDlg,IDC_EDGRIDY,NULL,FALSE);

          GridLineX=GetDlgItemInt(hDlg,IDC_EDGRIDLINEX,NULL,FALSE);

          GridLineY=GetDlgItemInt(hDlg,IDC_EDGRIDLINEY,NULL,FALSE);

          bGrid=(IsDlgButtonChecked(hDlg,IDC_CHKGRID)==BST_CHECKED);

          bGridLine=(IsDlgButtonChecked(hDlg,IDC_CHKGRIDLINE)==BST_CHECKED);

          EndDialog(hDlg,IDOK);

          return TRUE;

      case IDCANCEL:

          EndDialog(hDlg,IDCANCEL);

          return TRUE;

      }

      return FALSE;

   }

   return FALSE;

}

 

WM_INITDIALOG¿¡¼­ º¯¼öÀÇ °ªÀ» ÄÁÆ®·Ñ·Î Ãâ·ÂÇÏ°í IDOK¿¡¼­ ÄÁÆ®·ÑÀÇ °ªÀ» ´Ù½Ã º¯¼ö·Î ´ëÀÔÇÏ´Â ÀüÇüÀûÀÎ ´ëÈ­»óÀÚ ÇÁ·Î½ÃÀúÀÌ´Ù. ¸ÞÀÎ ¸Þ´ºÀÇ ¾È³»¼± ¼³Á¤ Ç׸ñÀÌ ¼±ÅõǾúÀ» ¶§ ÀÌ ´ëÈ­»óÀÚ¸¦ È£ÃâÇÑ´Ù. ÀÌ ´ëÈ­»óÀÚ´Â À¯ÀÏ Àü¿ª º¯¼ö°ªÀ» Á÷Á¢ º¯°æÇϹǷΠÆĶó¹ÌÅ͸¦ ¾µ ÇÊ¿ä´Â ¾ø´Ù.

 

LRESULT Main_OnCommand(HWND hWnd,WPARAM wParam,LPARAM lParam)

{

   ....

   case IDM_TOOL_GRID:

      if (DialogBox(g_hInst,MAKEINTRESOURCE(IDD_GRID),hWnd,GridDlgProc)==IDOK) {

          InvalidateRect(hCanvas,NULL,FALSE);

      }

      break;

 

¾È³»¼± ¼³Á¤ÀÌ º¯°æµÇ¸é ĵ¹ö½º¸¦ ¹«È¿È­ÇÏ¿© ´Ù½Ã ±×¸®µµ·Ï Çß´Ù. ±×¸®µåÀÇ »ç¿ë À¯¹«´Â È­¸é°ú »ó°üÀÌ ¾øÁö¸¸ ¾È³»¼± º¸±â ±â´ÉÀÌ º¯°æµÇ¸é È­¸éµµ ´Ù½Ã ±×·Á¾ß Çϱ⠶§¹®ÀÌ´Ù.