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