¿À´ÃÀº ȸ鿡 ±×¸²À» »Ñ·Á º¸°Ú½À´Ï´Ù. ½ÇÇà ÆÄÀÏ ¾È¿¡ ±×¸²À» Æ÷ÇÔ½ÃÄÑ ÀÛ¾÷Çϵµ·Ï ÇÏ°Ú½À´Ï´Ù. ±×¸²Àº ½ºÅ²µ¿ °¡¼ ¾Æ¹«°Å³ª ¸¾¿¡ µå´Â °ÍÀ¸·Î ºÒ¹ýÀ¸·Î ÆÛ ¿Ô½À´Ï´Ù. Àâ¾Æ°¡°Å³ª Ç×ÀÇÇÏ´Â »ç¶÷ ¾ø°ÚÁö¿ä?
1. »õ·Î¿î ÇÁ·ÎÁ§Æ® Exam18À» ¸¸µì´Ï´Ù. ±×¸®°í Hello World¸¦ Ãâ·ÂÇÏ´Â ºÎºÐÀ» »èÁ¦ÇÕ´Ï´Ù.
2. °Ô½ÃÆÇÀÇ Ã¹¹ø° ±×¸²À» ´Ù¿î¹Þ½À´Ï´Ù. ±×¸®°í ´Ù¿î¹ÞÀº ±×¸²À» »Ç¼¥ µîÀ» ÀÌ¿ëÇÏ¿© 256 »öÀ¸·Î º¯È¯ÇÑ ÈÄ ºñÆ®¸Ê ÆÄÀÏ(È®ÀåÀÚ°¡ BMP ÀÎ ÆÄÀÏ)·Î ÀúÀåÇÕ´Ï´Ù. ÆÄÀϸíÀº Orig.bmp ·Î ÇÕ´Ï´Ù. EXE ÆÄÀÏ¿¡ Æ÷ÇԵǴ ±×¸²Àº °¡±ÞÀû 256»ö ÀÌÇϷΠó¸®ÇØ ÁÝ´Ï´Ù. ±×·¸°Ô ÇÏÁö ¾ÊÀ¸¸é ¸®¼Ò½º ¿¡µðÅÍ¿¡ ³ªÅ¸³ªÁö ¾ÊÀ» °ÍÀÔ´Ï´Ù. (±×·¡¼ 16ºñÆ® À̹ÌÁö³ª 24ºñÆ® À̹ÌÁö´Â ½ÇÇà ÆÄÀÏ¿¡ ³Ö¾î º¸Áö ¾Ê¾Ò½À´Ï´Ù.)
3. ±×¸²À» ¸®¼Ò½º¿¡ Ãß°¡ÇØ ÁÝ´Ï´Ù. ¸®¼Ò½º ºä·Î °¡¼ Exam18 Resources¸¦ ¼±ÅÃÇÑ ÈÄ ¿À¸¥ÂÊ ¸¶¿ì½º ¹öÆ°À» ´©¸£¸é Æ˾÷ ¸Þ´º°¡ ³ªÅ¸³³´Ï´Ù. ±×·¯¸é Import¸¦ ¼±ÅÃÇÕ´Ï´Ù. ÆÄÀÏ ¿±â ȸéÀÌ ³ªÅ¸³ª¸é ÆÄÀÏ Çü½ÄÀ» ¡®¸ðµç ÆÄÀÏ(*.*)¡¯ ·Î ¼±ÅÃÇÕ´Ï´Ù. ¸®¼Ò½º¿¡ Bitmap Ç׸ñÀÌ »ý±â°í ±× ¾Æ·¡ IDB_BITMAP1 À̶ó´Â À̸§ÀÌ Ç׸ñÀÌ ³ªÅ¸³¯ °ÍÀÔ´Ï´Ù. IDB_BITMAPÀ» IDB_TOSHIBA ·Î °íĨ´Ï´Ù. ±×¸®°í ±× Ç׸ñÀ» ´õºíŬ¸¯ ÇÏ¸é ±×¸² ÆÄÀÏÀÌ ³ªÅ¸³¯ °ÍÀÔ´Ï´Ù. Ç×»ó ID¸¦ ¸ñÀû¿¡ ¸Â°Ô À̸§À» ¹Ù²Ù´Â ¿¬½ÀÀ» Çϼ¼¿ä. ¿µ¾î ½Ç·ÂÀÌ Âª¾Æ¼ ´ëÃæ... ^^
4. Ŭ·¡½º ºä·Î °¡¼ WinMain À¸·Î À̵¿ÇÑ ´ÙÀ½ À§ÀÇ Àü¿ª º¯¼ö ¼±¾ð ¿µ¿ª¿¡ ¾Æ·¡¿Í °°ÀÌ ±×¸²À» Àбâ À§ÇÑ º¯¼ö¸¦ ¼±¾ðÇÕ´Ï´Ù. HBITMAP Çü º¯¼ö´Â ±×¸²À» Àбâ À§ÇÑ º¯¼öÇüÀÔ´Ï´Ù.
// Global Variables:
HINSTANCE g_hInst;
HWND g_hwndCB;
¢º HBITMAP g_hToshiba = NULL;
5. WndProc ÇÔ¼ö·Î °¡¼ »ó´ÜÀÇ Áö¿ªº¯¼ö ¼±¾ð¿µ¿ª¿¡ ¾Æ·¡¿Í °°ÀÌ DC º¯¼ö¸¦ Çϳª ´õ Ãß°¡ÇÕ´Ï´Ù.
HDC hdc;
int wmId, wmEvent;
PAINTSTRUCT ps;
¢º HDC hdcMem;
6. WndProc ÇÔ¼öÀÇ WM_CREATE ¸Þ½ÃÁö ó¸® ºÎºÐ¿¡ ¾Æ·¡¿Í °°ÀÌ ±×¸²À» Àд Äڵ带 Ãß°¡ÇÕ´Ï´Ù. LoadBitmap ÇÔ¼ö´Â ¸®¼Ò½º·ÎºÎÅÍ ±×¸²À» ÀоîµéÀÌ´Â ÇÔ¼öÀÔ´Ï´Ù. µÚÂÊ Àμö¿¡ ±×¸²¿¡ ÇØ´çÇÏ´Â ID ÀÎ IDB_TOSHIBA °¡ ÁöÁ¤µÇ¾î ÀÖ½À´Ï´Ù. ÀÌ Çü½ÄÀ¸·Î »ç¿ëÇÑ´Ù°í »ý°¢ÇÏ½Ã¸é µË´Ï´Ù. WM_CREATE ´Â À©µµ¿ì°¡ ¸¸µé¾îÁö¸é¼ Àü´ÞµÇ´Â ¸Þ½ÃÁöÀÔ´Ï´Ù.
case WM_CREATE:
......
¢º g_hToshiba = LoadBitmap( g_hInst, MAKEINTRESOURCE(IDB_TOSHIBA) );
break;
7. WndProc ÇÔ¼öÀÇ WM_DESTROY ¸Þ½ÃÁö ó¸® ºÎºÐ¿¡ ¾Æ·¡¿Í °°ÀÌ ±×¸²À» Á¦°ÅÇÏ´Â Äڵ带 Ãß°¡ÇÕ´Ï´Ù. WM_DESTROY ¸Þ½ÃÁö´Â À©µµ¿ì°¡ Á¾·áµÇ¸é¼ Àü´ÞµÇ´Â ¸Þ½ÃÁöÀÔ´Ï´Ù.
case WM_DESTROY:
¢º DeleteObject( g_hToshiba );
......
8. ±×¸²À» Àаí Áö¿ì´Â ºÎºÐÀ» ³Ö¾úÀ¸´Ï ÀÌÁ¦ ±×¸²À» »Ñ¸®´Â ºÎºÐÀ» ³Öµµ·Ï ÇÕ´Ï´Ù. WndProc ÇÔ¼öÀÇ WM_PAINT ¸Þ½ÃÁö ó¸® ºÎºÐÀ» ¾Æ·¡¿Í °°ÀÌ ÀÔ·ÂÇØ ÁÝ´Ï´Ù.
case WM_PAINT:
hdc = BeginPaint(hWnd, &ps);
¢º hdcMem = CreateCompatibleDC( hdc );
¢º SelectObject( hdcMem, g_hToshiba );
¢º BitBlt( hdc, 0, 0, 240, 270, hdcMem, 0, 0, SRCCOPY );
¢º DeleteDC( hdcMem );
EndPaint(hWnd, &ps);
break;
°¢ Çà¿¡ ´ëÇØ ¼³¸íÇÏ°Ú½À´Ï´Ù. ÀÌÇØ°¡ ¾ÈµÇ½Ã´Â ºÐÀº ±×³É Åë°ú...
hdcMem = CreateCompatibleDC( hdc );
À©µµ¿ì¿Í ¶È°°Àº ±¸Á¶¸¦ °¡Áö´Â ¸Þ¸ð¸® DC¸¦ Çϳª »ý¼ºÇÕ´Ï´Ù. ÀÌÀ¯´Â ±×¸²À» ȸ鿡 »Ñ¸®±â À§Çؼ´Â DC »çÀÌÀÇ À̹ÌÁö Àü¼Û ¸í·ÉÀÎ BitBlt¸¦ »ç¿ëÇØ¾ß µÇ±â ¶§¹®ÀÔ´Ï´Ù.
SelectObject( hdcMem, g_hToshiba );
¸Þ¸ð¸® DC °¡ ÀÐÀº ±×¸²À» °¡Áöµµ·Ï ÇÕ´Ï´Ù. À©µµ¿ì DC ´Â ȸéÀ» °¡Áö°í ÀÖ´Â »óÅÂÀÌ°í ¸Þ¸ð¸® DC ´Â ±×¸²À» °¡Áö°í ÀÖ´Â »óÅ°¡ µË´Ï´Ù.
BitBlt( hdc, 0, 0, 240, 270, hdcMem, 0, 0, SRCCOPY );
¸Þ¸ð¸® DC¿¡¼ À©µµ¿ì DC ·Î ±×¸²À» º¸³À´Ï´Ù. hdc ´Â À©µµ¿ì DC¸¦ ÀǹÌÇÏ°í, 0, 0 Àº ȸ鿡 »Ñ¸± ÁÂÇ¥ÀÔ´Ï´Ù. 240, 270 Àº »Ñ¸± ±×¸²ÀÇ Å©±â°¡ µÇ°í, hdcMem Àº ±×¸²À» °¡Á®¿Ã DCÀÔ´Ï´Ù. 0, 0 Àº ±×¸²À» °¡Á®¿Ã ÁÂÇ¥ÀÔ´Ï´Ù. SRCCOPY ´Â ±×¸²À» ±×³É ´Ù¸¥ ¿¬»ê ¾øÀÌ ±×´ë·Î º¸³»¶ó´Â °ÍÀÔ´Ï´Ù. ¿©·¯ °¡Áö ´Ù¸¥ ¿¬»êÀÌ Á¸ÀçÇÏÁö¸¸ ´ë°³ SRCCOPY¸¦ Á¦ÀÏ ¸¹ÀÌ »ç¿ëÇÕ´Ï´Ù.
DeleteDC( hdcMem );
´Ù »ç¿ëÇÑ ¸Þ¸ð¸® DC ¸¦ Á¦°ÅÇÕ´Ï´Ù.
9. ÇÁ·Î±×·¥À» ½ÇÇà½ÃÅ°¸é PDA ȸ鿡 ±×¸²ÀÌ ³ªÅ¸³³´Ï±î?
ºñÁÖ¾ó º£ÀÌÁ÷ º¸´Ù Äڵ尡 º¹ÀâÇÏÁö¿ä? ´ë½Å ÀÀ¿ë¿¡¼ º£ÀÌÁ÷ º¸´Ù Á¶±Ý ´õ ½±°Ô µË´Ï´Ù. ´Ü¼øÈ÷ ±×¸²À» »Ñ¸°´Ù¸é º£ÀÌÁ÷Àº ÄÚµùµµ °ÅÀÇ ¾ÊÇÏ°í °¡´ÉÇÏÁö¸¸ ±×¸²À» µ¹¸°´Ù°Å³ª Àß¶ó¼ »Ñ¸°´Ù°Å³ª ÇÒ ¶§¿¡´Â Èûµé±â´Â C ¾ð¾î¿Í ¸¶Âù°¡Áö°¡ µÇÁö¿ä.
ÀÏ´Ü ½ÇÇà ÆÄÀÏ¿¡ ±×¸²À» Æ÷ÇÔ½ÃÅ°´Â °æ¿ì ´ë°³ ½ÇÇà ÆÄÀÏÀÇ Å©±â°¡ Ä¿Áö°Ô µË´Ï´Ù. ±×·¡¼ ´ë°³ÀÇ ÇÁ·Î±×·¥µéÀº ±×¸² ÆÄÀÏÀ» Æ÷ÇÔ½ÃÅ°Áö ¾Ê°í ¿ÜºÎ¿¡ »©³õ°Ô µË´Ï´Ù. ´ÙÀ½ ½Ã°£¿¡´Â ¿ÜºÎÀÇ ±×¸² ÆÄÀÏÀ» Àд ÀÛ¾÷À» ÇØ º¸°Ú½À´Ï´Ù.
±Ùµ¥ ³ª»ÛÄÚµå´Ô VB CE °Á°¡ ¿Ã¶ó¿ÀÁö ¾Ê°í ÀÖ½À´Ï´Ù. ¤Ñ..¤Ñ
|