ApiDraw07±îÁö´Â µµÇüÀ» Çȼ¿ ´ÜÀ§·Î ÆíÁýÇß´Ù. ÀÌ·¸°Ô ÇÏ¸é ¼¶¼¼ÇÑ À̵¿ ¹× Å©±â º¯°æÀÌ °¡´ÉÇÑ °Í °°Áö¸¸ ½ÇÁ¦·Î ½á º¸¸é Á¤·ÄÇϱ⠾î·Á¿ö¼ ´ë´ÜÈ÷ ºÒÆíÇÏ´Ù. ¿¹¸¦ µé¾î »ç°¢Çü µµÇü ¼¼ °³¸¦ ¶È°°Àº Å©±â·Î »ý¼ºÇѴٰųª µµÇüÀ» ÀÏÁ¤ÇÑ ±âÁؼ±¿¡ ¸ÂÃß¾î ³ª¶õÈ÷ ¹èÄ¡ÇÏ´Â °Íµµ ½±Áö ¾Ê´Ù. ±×·¡¼ º¸Åë Çȼ¿ ´ÜÀ§·Î ÆíÁýÇÏÁö ¾ÊÀ¸¸ç ÀÏÁ¤ÇÑ Ä ´ÜÀ§·Î À̵¿ ¹× Å©±â Á¶Á¤À» ÇÑ´Ù.
ÆÄ¿ö Æ÷ÀÎÆ®³ª ºñÁö¿À°°Àº º¤ÅÍ ÆíÁý ÇÁ·Î±×·¥À» »ç¿ëÇØ º¸¸é ÀÌ·± ÆíÁý ¹æ½ÄÀ» ½±°Ô ÀÌÇØÇÒ ¼ö ÀÖÀ» °ÍÀÌ´Ù. ¿ì¸®°¡ Áö±Ý »ç¿ëÇϰí ÀÖ´Â ºñÁÖ¾ó C++ÀÇ ¸®¼Ò½º ÆíÁý±âµµ ÀÌ·± ±×¸®µå ÆíÁý ¹æ¹ýÀ» Áö¿øÇÑ´Ù. À̵¿, Å©±â Á¶Á¤ÀÇ ´ÜÀ§¸¦ ±×¸®µå¶ó°í Çϴµ¥ µµÇüÀº ±×¸®µå ´ÜÀ§·Î ¹èÄ¡µÈ´Ù. ±×¸®µå ±â´ÉÀ» Ãß°¡Çϱâ À§ÇØ ApiDraw08 ÇÁ·ÎÁ§Æ®¸¦ ¸¸µé°í ´ÙÀ½ Àü¿ª º¯¼öµéÀ» ¼±¾ðÇÏÀÚ.
int GridX, GridY;
BOOL bGrid;
int GridLineX, GridLineY;
BOOL bGridLine;
GridX, GridY´Â ¸» ±×´ë·Î ±×¸®µåÀÇ ¼öÆò, ¼öÁ÷ ´ÜÀ§À̸ç bGrid´Â ±×¸®µå ±â´ÉÀ» ¾µ °ÍÀΰ¡ ¾Æ´Ñ°¡¸¦ ÁöÁ¤ÇÑ´Ù. GridLineX, GridLineY´Â ±×¸®µå¸¦ º¸¿©ÁÙ ¾È³»¼±ÀÇ ¼öÆò, ¼öÁ÷ °£°ÝÀ̸ç bGridLineÀº ÀÌ ¾È³»¼±À» º¸¿©ÁÙ °ÍÀΰ¡ ¾Æ´Ñ°¡¸¦ ÁöÁ¤ÇÑ´Ù. ±»ÀÌ ¼öÆò, ¼öÁ÷ÃàÀÇ °£°ÝÀ» µû·Î ÁöÁ¤ÇÒ ÇÊ¿ä±îÁö´Â ¾øÁö¸¸ »ç¿ëÀÚ¿¡°Ô ÃÖ´ëÇÑÀÇ ¼±ÅñÇÀ» ÁÖ±â À§Çؼ °¢ ¹æÇâÀ¸·Î °£°ÝÀ» µû·Î ÁöÁ¤ÇÒ ¼ö ÀÖµµ·Ï Çß´Ù.
¸¸¾à ¼öÆò, ¼öÁ÷ °£°Ý°ú ¾È³»¼±À» µû·Î ÁöÁ¤ÇÏ´Â °ÍÀÌ ¹ø°Å·Î¿Í ÇϳªÀÇ °ªÀ¸·Î ¼öÆò, ¼öÁ÷À» ÇѲ¨¹ø¿¡ ÁöÁ¤Çϵµ·Ï ÇÏ°í ½Í´Ù¸é ÄÚµå´Â ¼öÁ¤ÇÒ ÇÊ¿ä¾øÀÌ ´ëÈ»óÀÚÀÇ UI¸¦ Çϳª¸¸ ÀÛ¼ºÇÏ¸é µÈ´Ù. Áï, ĵ¹ö½º´Â °¢ ¹æÇâÀÇ ¿É¼ÇÀ» µû·Î ÀԷ¹ÞÀ» ¼ö ÀÖ°í ÀÌ ¿É¼ÇÀ» ´Ù »ç¿ëÇÒ °ÍÀΰ¡ ¾Æ´Ñ°¡´Â È£½ºÆ®°¡ °áÁ¤ÇÒ ¼ö ÀÖµµ·Ï ÇØ µÎ´Â °ÍÀÌ´Ù. ÀÌ º¯¼öµéÀº OnCreate¿¡¼ ´ÙÀ½°ú °°ÀÌ ÃʱâÈÇÑ´Ù.
LRESULT OnCreate(HWND hWnd,WPARAM wParam,LPARAM lParam)
{
....
GridX=8;
GridY=8;
bGrid=TRUE;
GridLineX=8;
GridLineY=8;
bGridLine=TRUE;
±×¸®µå´Â 8Çȼ¿ ´ÜÀ§·Î ¼³Á¤µÇ¸ç ¾È³»¼±Àº ¸Å 8±×¸®µå¸¶´Ù ±×·¯´Ï±î ¸Å 64Çȼ¿¸¶´Ù Ãâ·ÂÇÑ´Ù. ¾È³»¼±ÀÌ ³Ê¹« ÃÎÃÎÇÏ°Ô ±×·ÁÁö¸é ȸéÀÌ ³Ê¹« ¹øÀ⽺·¯¿ö º¸À̹ǷΠÀû´çÇÑ °£°ÝÀ» µÎ°í ¾È³»¼±À» Ç¥½ÃÇÏ´Â °ÍÀÌ º¸±â¿¡ ÁÁ´Ù. OnPaint¿¡¼ ¾È³»¼±À» ±×¸®´Âµ¥ ´Ü¼øÇÑ ¹ÙµÏÆÇ Ãâ·Â¹®ÀÏ »ÓÀÌ´Ù. ½ÇÁ¦ µµÇüÀÌ ¾Æ´Ï¹Ç·Î ³Ê¹« ÁøÇÏÁö ¾ÊÀº »ö»óÀ¸·Î ±×·Á¾ß ´«¿¡ °Å½½¸®Áö ¾Ê´Â´Ù.
LRESULT OnPaint(HWND hWnd,WPARAM wParam,LPARAM lParam)
{
int x,y;
....
FillRect(hMemDC,&crt,GetSysColorBrush(COLOR_WINDOW));
if (bGridLine) {
hPen=CreatePen(PS_SOLID,1,RGB(192,192,192));
hOldPen=(HPEN)SelectObject(hMemDC,hPen);
for (y=0;y<crt.bottom;y=y+GridLineY*GridY) {
MoveToEx(hMemDC,0,y,NULL);
LineTo(hMemDC,crt.right,y);
}
for (x=0;x<crt.right;x=x+GridLineX*GridX) {
MoveToEx(hMemDC,x,0,NULL);
LineTo(hMemDC,x,crt.bottom);
}
DeleteObject(SelectObject(hMemDC,hOldPen));
}
for (idx=0;idx<arNum;idx++) {
....
¾È³»¼±Àº µµÇüº¸´Ù ´õ ¾Æ·¡ÂÊ¿¡ ÀÖ¾î¾ß ÇϹǷΠµµÇüÀ» ±×¸®±â Àü¿¡ ¹Ì¸® ±×·Á¾ß ÇÑ´Ù. ¾È³»¼±µµ ´õºí ¹öÆÛ¸µÀÇ ´ë»óÀ̹ǷΠ¸Þ¸ð¸® DC¿¡ ±×·ÁÁö¸ç µµÇü°ú ÇÔ²² ȸé DC·Î Àü¼ÛµÉ °ÍÀÌ´Ù. ¿©±â±îÁö ÀÛ¼ºÇÑ ÈÄ ½ÇÇàÇØ º¸¸é ¾È³»¼±ÀÌ º¸À̱â´Â ÇÏÁö¸¸ ¾ÆÁ÷ µ¿ÀÛÀº ÇÏÁö ¾Ê´Â´Ù.