°¡.±×¸®µå

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·Î Àü¼ÛµÉ °ÍÀÌ´Ù. ¿©±â±îÁö ÀÛ¼ºÇÑ ÈÄ ½ÇÇàÇØ º¸¸é ¾È³»¼±ÀÌ º¸À̱â´Â ÇÏÁö¸¸ ¾ÆÁ÷ µ¿ÀÛÀº ÇÏÁö ¾Ê´Â´Ù.