|
|||||
- File #1 : Image2101.jpg(), Download : 21 - File #2 : TestImage.zip(), Download : 23 |
¿À·¡ ±â´Ù¸®¼Ì½À´Ï´Ù.(»ç½ÇÀº ¾È±â´Ù¸®¼ÌÁÒ?) ±×³ðÀÇ ³×ºñ ÇØ°áÇÏ´À¶ó°í 1ÁÖÀÏÀ» ³¯·Á ¸Ô¾ú³×¿ä. ±ÍÁßÇÑ ½Ã°£À»... ¿À´Ã µµ½Ã¹Ù¿¡ ¸ÂÃâ ¼ö ÀÖµµ·Ï Àú³á¿¡ Ä£±¸ ±«·ÓÈ÷·¯ °©´Ï´Ù. ¿À´Ã °ÀÇ´Â Åõ¸í À̹ÌÁö¿Í ŸÀ̸ÓÀÔ´Ï´Ù. Åõ¸í À̹ÌÁö¶ó´Â °ÍÀº ±×¸²ÀÇ »çÀÌ »çÀÌ¿¡ ¹è°æÀÌ ºñÃç º¸ÀÌ´Â À̹ÌÁö¸¦ ¸»ÇÕ´Ï´Ù. °ÔÀÓ¿¡¼ ¾ÆÁÖ Áß¿äÇÑ ¿ä¼ÒÁö¿ä. Á¶¸¸°£ °£´ÜÇÑ °ÔÀÓÀ» Çϳª ¸¸µé¾îº¼ ¿¹Á¤Àε¥ ±×¿¡ ´ëºñÇؼ Åõ¸í À̹ÌÁö¸¦ ȸ鿡 ±×·Áº¸´Â ¿¬½ÀÀ» ÇÕ´Ï´Ù. ±×¸®°í Åõ¸í À̹ÌÁö¸¦ ¾Æ·¡ À§·Î ¿òÁ÷¿© º¸µµ·Ï ÇÏ°Ú½À´Ï´Ù. 1. TestImage.Zip ÆÄÀÏÀ» ´Ù¿î ¹Þ¾Æ ¾ÐÃàÀ» Ǭ ´ÙÀ½ ¾Æ·¡ ÆÄÀÏ 2°³¸¦ Storage Card2 Æú´õ(SD Ä«µå)¿¡ ³Ö½À´Ï´Ù. ´Ù¸¥ °÷¿¡ ³ÖÀ¸½Ç ºÐÀº ³ªÁß¿¡ ÇÁ·Î±×·¥¿¡¼ ±× Æú´õ·Î ¹Ù²Ù¾î ÁÖ¼Å¾ß ÇÕ´Ï´Ù. Orig02.bmp Title01.bmp 2. »õ·Î¿î ÇÁ·ÎÁ§Æ® Exam20À» ¸¸µì´Ï´Ù. ±×¸®°í Hello World¸¦ Ãâ·ÂÇÏ´Â ºÎºÐÀ» »èÁ¦ÇÕ´Ï´Ù. 3. ÇÁ·Î±×·¥ÀÇ Á¦ÀÏ À§ ºÎºÐÀÇ Àü¿ª º¯¼ö ¼±¾ð ¿µ¿ª¿¡ ´ÙÀ½°ú °°ÀÌ ¼±¾ðÇÕ´Ï´Ù. // Global Variables: HINSTANCE g_hInst; HWND g_hwndCB; ¢ºHBITMAP g_hOrig; ¢ºHBITMAP g_hTitle; ¢ºint g_nYDisp; ¢ºint g_nYStep; ¢ºint g_nYDir; g_hOrig ´Â ¹è°æ ±×¸²(Orig02.bmp)À», g_hTitle Àº ŸÀÌƲ ±×¸²(Title01.bmp)À» Àбâ À§ÇÑ º¯¼öÀÔ´Ï´Ù. g_nYDisp ´Â ȸ鿡 ŸÀÌƲ ±×¸²À» »Ñ¸®´Â À§Ä¡ÀÔ´Ï´Ù. g_nYStep ´Â ŸÀÌƲ ±×¸²ÀÌ ¿òÁ÷ÀÌ´Â ¼Óµµ(°£°Ý)ÀÔ´Ï´Ù. g_nYDir Àº ŸÀÌƲ ±×¸²ÀÌ ¿òÁ÷ÀÌ´Â ¹æÇâÀÔ´Ï´Ù. 1 ÀÌ¸é ¾Æ·¡·Î, -1 À̸é À§·Î ¿òÁ÷ÀÌ°Ô µË´Ï´Ù. 4. ÇÔ¼öÀÇ ÇÁ·ÎÅä ŸÀÔ ¼±¾ð ¿µ¿ª¿¡ ¾Æ·¡¿Í °°ÀÌ 2°³ÀÇ ÇÔ¼ö ¼±¾ðÀ» Ãß°¡ÇÕ´Ï´Ù. // Forward declarations of functions included in this code module: ...... HWND CreateRpCommandBar(HWND); ¢ºHBITMAP ReadBitmap( char* sFName ); ¢ºvoid DispImage( HDC hdc ); 5. Àü °ÀÇ¿¡¼ ¸¸µé¾ú´ø ÇÔ¼ö ReadBitmapÀ» º¹»çÇؼ ÇöÀç ÇÁ·Î±×·¥ÀÇ Á¦ÀÏ ¾Æ·¡¿¡ ºÙ¿©³Ö±â¸¦ ÇÕ´Ï´Ù. 6. WndProc ÇÔ¼ö·Î À̵¿ÇÏ¿© WM_CREATE ¸Þ½ÃÁö ó¸® ºÎºÐ¿¡ ¾Æ·¡¿Í °°Àº Äڵ带 Ãß°¡ÇÕ´Ï´Ù. case WM_CREATE: g_hwndCB = CreateRpCommandBar(hWnd); // Initialize the shell activate info structure memset (&s_sai, 0, sizeof (s_sai)); s_sai.cbSize = sizeof (s_sai); ¢º g_hOrig = ReadBitmap( Storage Card2Orig02.bmp ); ¢º g_hTitle = ReadBitmap( Storage Card2Title01.bmp ); ¢º g_nYDisp = 0; ¢º g_nYStep = 10; ¢º g_nYDir = 1; ¢º SetTimer( hWnd, 1, 500, NULL ); break; ±×¸²À» ÀÐ°í º¯¼ö¸¦ ÃʱâÈÇÑ ´ÙÀ½ ŸÀ̸Ӹ¦ ¼³Á¤ÇÕ´Ï´Ù. ReadImage ´Â ±×¸² 2°³¸¦ Àд ºÎºÐÀÔ´Ï´Ù. g_nYDisp ÀÇ Ã³À½ °ªÀº 0ÀÔ´Ï´Ù. g_nYStep Àº ±×¸²ÀÌ ¿òÁ÷ÀÌ´Â °£°ÝÀ» 10 ÄÀ¸·Î ¼³Á¤ÇÕ´Ï´Ù. g_nYDir Àº ±×¸²ÀÌ ¾Æ·¡·Î ¿òÁ÷À̵µ·Ï 1 ·Î ¼³Á¤ÇÕ´Ï´Ù. SetTimer( hWnd, 1, 500, NULL ); SetTimer ÇÔ¼ö´Â ŸÀ̸Ӹ¦ ¼³Á¤ÇÏ´Â ÇÔ¼öÀÔ´Ï´Ù. ÇöÀç À©µµ¿ì¿¡ ŸÀÌ¸Ó 1¹øÀ» 0.5Ãʸ¶´Ù Çѹø¾¿ ºÎ¸£µµ·Ï ¼³Á¤ÇÏ´Â °ÍÀÔ´Ï´Ù. ŸÀ̸Ӵ ¿©·¯°³ ¼³Á¤ÇÒ ¼ö ÀÖÀ¸¸ç °ªÀÌ 500 À̸é 0.5 ÃÊ Á¤µµÀÇ °£°ÝÀÔ´Ï´Ù. NULL ºÎºÐÀº ŸÀ̸Ӹ¦ ó¸®ÇÏ´Â ´Ù¸¥ ÇÔ¼ö°¡ ÀÖ´Â °æ¿ì¿¡ ±× ÇÔ¼ö¸¦ ÁöÁ¤ÇØ ÁÖ´Â °ÍÀε¥ ´Ù¸¥ ÇÔ¼ö°¡ ¾øÀÌ ÇöÀçÀÇ À©µµ¿ì ¸Þ½ÃÁö ó¸® ·çƾ WndProc °¡ ó¸®ÇÒ °æ¿ì¿¡ NULL ·Î ¼³Á¤ÇÕ´Ï´Ù. 7. WM_PAINT ¸Þ½ÃÁö ó¸® ºÎºÐ¿¡ ¾Æ·¡¿Í °°Àº Äڵ带 Ãß°¡ÇÕ´Ï´Ù. case WM_PAINT: hdc = BeginPaint(hWnd, &ps); ¢º DispImage( hdc ); EndPaint(hWnd, &ps); break; WM_PAINT ¸Þ½ÃÁö´Â ´ÜÁö DispImage ÇÔ¼ö¸¸À» È£ÃâÇÕ´Ï´Ù. DispImage ´Â ȸ鿡 ±×¸²À» ±×¸®´Â ÇÔ¼ö·Î¼ ³ªÁß¿¡ ¸¸µé °ÍÀÔ´Ï´Ù. 8. WM_PAINT ¸Þ½ÃÁöÀÇ break; ¹® ´ÙÀ½ ÁÙ¿¡ ¾Æ·¡¿Í °°ÀÌ Å¸À̸Ӹ¦ ó¸®ÇÏ´Â ¸Þ½ÃÁö WM_TIMER ó¸® ºÎºÐÀ» ¾Æ·¡¿Í °°ÀÌ Ãß°¡ÇÕ´Ï´Ù. case WM_PAINT: ...... break; ¢º case WM_TIMER: ¢º hdc = GetDC( hWnd ); ¢º DispImage( hdc ); ¢º ReleaseDC( hWnd, hdc ); ¢º g_nYDisp += g_nYStep * g_nYDir; ¢º if( g_nYDisp + 77 >= 270 ) ¢º { ¢º g_nYDisp = 270 - 77; ¢º g_nYDir = -1; ¢º } ¢º else if( g_nYDisp < 0 ) ¢º { ¢º g_nYDisp = 0; ¢º g_nYDir = 1; ¢º } ¢º break; ÀÏÁ¤ ½Ã°£¸¶´Ù ±×¸²À» »Ñ¸®µµ·Ï ÇÏ°í ±×¸²ÀÇ À§Ä¡¸¦ °è¼Ó ¹Ù²ß´Ï´Ù. hdc = GetDC( hWnd ); ¸ÕÀú ±×¸²À» »Ñ¸®±â À§ÇÑ DC¸¦ À©µµ¿ì·ÎºÎÅÍ ¾ò½À´Ï´Ù. DispImage( hdc ); ±×¸²À» ȸ鿡 »Ñ¸³´Ï´Ù. ReleaseDC( hWnd, hdc ); DC¸¦ À©µµ¿ì¿¡°Ô µ¹·ÁÁÝ´Ï´Ù. g_nYDisp += g_nYStep * g_nYDir; ±×¸²À» ´ÙÀ½ À§Ä¡·Î À̵¿½Ãŵ´Ï´Ù. ÇöÀç À§Ä¡¿¡ °£°ÝÀ» ´õÇÏ°Ô µË´Ï´Ù. g_nYDirÀ» °öÇÏ´Â °ÍÀº ¹æÇâÀ» °áÁ¤Çϱâ À§ÇؼÀÔ´Ï´Ù. g_nYDir ÀÌ ¾ç¼öÀÌ¸é °öÇÏ´Â °á°ú´Â ¾ç¼ö°¡ µÇ¾î g_nYDisp ÀÇ °ªÀÌ Ä¿Áö°Ô µË´Ï´Ù. ±×·³ Ãâ·ÂÇÏ´Â À§Ä¡´Â ¾Æ·¡·Î ³»·Á°¡°Ô µË´Ï´Ù. g_nYDir ÀÌ À½¼öÀÌ¸é °öÇÏ´Â °á°ú´Â À½¼ö°¡ µÇ°í g_nYDisp ¿¡´Â À½¼ö¸¦ ´õÇϹǷΠ°á±¹ »©´Â °ÍÀÌ µÇ¾î g_nYDisp ÀÇ °ªÀº °¨¼ÒÇÕ´Ï´Ù. ±×·¡¼ g_nYDir ÀÇ °ª¿¡ µû¶ó ±×¸²ÀÌ À§ ¾Æ·¡·Î ¿òÁ÷ÀÌ°Ô µÇ´Â °ÍÀÔ´Ï´Ù. if( g_nYDisp + 77 >= 270 ) { g_nYDisp = 270 - 77; g_nYDir = -1; } ¸¸¾à ±×¸²ÀÌ ¹ØÀ¸·Î ¹þ¾î³ª·Á ÇÒ °æ¿ì ±×¸²À» Á¦ÀÏ ¾Æ·¡ À§Ä¡¿¡ µü ¸ÂÃß°í ¹æÇâÀ» ¹Ý´ë(À§)·Î ÀüȯÇÕ´Ï´Ù. g_nYDisp ´Â ÇöÀç ±×¸²À» »Ñ¸®´Â À§Ä¡ÀÌ°í ±×¸²ÀÇ ¼¼·Î ±æÀÌ´Â 77 À̹ǷΠÇöÀç »Ñ¸®´Â À§Ä¡ + ±×¸²ÀÇ ±æÀÌ°¡ ȸéÀÇ ±æÀ̺¸´Ù Å©¸é ±×¸²ÀÌ È¸éÀ» ¾à°£ÀÌ¶óµµ ¹þ¾î³ª·Á ÇÑ´Ù´Â °ÍÀÔ´Ï´Ù. ±×·¯¸é Ãâ·Â À§Ä¡¸¦ Á¦ÀÏ ¹ØÀÇ À§Ä¡ - ±×¸²ÀÇ ±æÀÌ·Î Çؼ ¸ÂÃç ÁÖ°í ¹æÇâÀ» À§ ¹æÇâÀ¸·Î -1 °ªÀ» ÁÝ´Ï´Ù. else if( g_nYDisp < 0 ) { g_nYDisp = 0; g_nYDir = 1; } ¸¸¾à ±×¸²ÀÌ À§·Î ¹þ¾î³ª·Á ÇÏ´Â °æ¿ì Á¦ÀÏ À§·Î µü ¸ÂÃß°í ¹æÇâÀ» ¾Æ·¡·Î ÀüȯÇÕ´Ï´Ù. 9. WM_DESTROY ¸Þ½ÃÁöÀÇ Ã³¸® ·çƾ¿¡ ¾Æ·¡ Äڵ带 Ãß°¡ÇÕ´Ï´Ù. ŸÀ̸Ӹ¦ Á¾·áÇÏ°í, ±×¸²À» ¸Þ¸ð¸®¿¡¼ »èÁ¦ÇÕ´Ï´Ù. case WM_DESTROY: ¢º KillTimer( hWnd, 1 ); ¢º DeleteObject( g_hTitle ); ¢º DeleteObject( g_hOrig ); CommandBar_Destroy(g_hwndCB); PostQuitMessage(0); break; 10. ÇÁ·Î±×·¥ÀÇ Á¦ÀÏ ¾Æ·¡ ºÎºÐ¿¡ ¾Æ·¡¿Í °°ÀÌ È¸é¿¡ ±×¸²À» ±×¸®´Â ÇÔ¼ö DispImage ¸¦ Ãß°¡ÇØ ÁÝ´Ï´Ù. ¢ºvoid DispImage( HDC hdc ) ¢º{ ¢º HDC memdc; ¢º ¢º memdc = CreateCompatibleDC( hdc ); ¢º SelectObject( memdc, g_hOrig ); ¢º BitBlt( hdc, 0, 0, 240, 270, memdc, 0, 0, SRCCOPY ); ¢º SelectObject( memdc, g_hTitle ); ¢º TransparentImage( hdc, 10, g_nYDisp, 220, 77, ¢º memdc, 0, 0, 220, 77, RGB(0,255,0) ); ¢º DeleteDC( memdc ); ¢º} HDC memdc; ´Â ¸Þ¸ð¸® DC¸¦ ¾ò±â À§ÇÑ DC º¯¼öÀÔ´Ï´Ù. memdc = CreateCompatibleDC( hdc ); Àμö·Î ¹ÞÀº DC ÀÎ hdc ¿Í ¶È°°Àº µ¿ÀÛÀ» ÇÒ ¼ö ÀÖ´Â DC¸¦ ¸¸µé¾î¼ memdc °¡ °¡¸®Å°µµ·Ï ÇÕ´Ï´Ù. SelectObject( memdc, g_hOrig ); ¸Þ¸ð¸® DC °¡ ¹è°æ ±×¸²À» ¼±ÅÃÇÕ´Ï´Ù. BitBlt( hdc, 0, 0, 240, 270, memdc, 0, 0, SRCCOPY ); ȸéÀ¸·Î ¹è°æ ±×¸²À» »Ñ¸³´Ï´Ù. SelectObject( memdc, g_hTitle ); ŸÀÌƲ ±×¸²À» ¼±ÅÃÇÕ´Ï´Ù. TransparentImage( hdc, 10, g_nYDisp, 220, 77, memdc, 0, 0, 220, 77, RGB(0,255,0) ); ŸÀÌƲ À̹ÌÁö¸¦ Åõ¸í À̹ÌÁö·Î ȸ鿡 »Ñ¸³´Ï´Ù. ÀÌ Åõ¸íÀ̹ÌÁö ÇÔ¼ö´Â ÀÌÀü À©µµ¿ì ÇÁ·Î±×·¡¹Ö¿¡¼´Â ¸øº¸´ø ÇÔ¼öÀÔ´Ï´Ù. À©µµ¿ì¿¡¼´Â Åõ¸í À̹ÌÁö¸¦ »Ñ¸®±â À§ÇØ ²Ï ±î´Ù·Î¿î ÀÛ¾÷ÀÌ ÇÊ¿äÇß¾ú½À´Ï´Ù. Æ÷ÄÏ PC ¿¡¼´Â »ç¶÷µéÀÇ ¿ä±¸¸¦ ¹Þ¾Æµé¿© Ãß°¡ÇÏÁö ¾Ê¾Ò³ª »ý°¢ÇÕ´Ï´Ù. ù ¹ø° Àμö´Â ȸéÀÇ DCÀÔ´Ï´Ù. µÎ ¹ø°¿Í ¼¼ ¹ø° Àμö 10, g_nYDisp ´Â ȸ鿡 »Ñ·ÁÁú À§Ä¡ÀÔ´Ï´Ù. ¼¼ ¹ø°¿Í ³× ¹ø° Àμö 220, 77 Àº »Ñ·ÁÁú ±×¸²ÀÇ °¡·Î, ¼¼·Î Å©±âÀÔ´Ï´Ù. memdc ´Â ±×¸²À» °¡Áö°í ÀÖ´Â DCÀÔ´Ï´Ù. ÀÌ DC¿¡¼ ±×¸²À» °¡Á®¿Í¼ »Ñ¸®°Ô µË´Ï´Ù. 0, 0 Àº ±×¸²À» °¡Á®¿Ã À§Ä¡ÀÔ´Ï´Ù. ¿©´ü ¹ø°¿Í ¾ÆÈ© ¹ø° Àμö 220, 77 Àº °¡Á®¿Ã ±×¸²ÀÇ °¡·Î Å©±â, ¼¼·Î Å©±âÀÔ´Ï´Ù. RGB(0,255,0) Àº ¹è°æÀÌ ºñÄ¡°Ô µÇ´Â Åõ¸í»öÀ» ÁöÁ¤ÇÑ °ÍÀÔ´Ï´Ù. ŸÀÌƲ À̹ÌÁö¸¦ ±×·¡ÇÈ Åø·Î º¸½Ã¸é ¹è°æÀÌ ³ì»öÀ¸·Î µÇ¾î ÀÖ½À´Ï´Ù. ÀÌ ³ì»öÀÌ ¿©±â¼´Â ¹è°æÀ» ºñÄ¡µµ·Ï ÇÏ´Â Åõ¸í»öÀÌ µÇ´Â °ÍÀÔ´Ï´Ù. ´Ù¸¥ »öÀ¸·Î Çѹø ¹Ù²Ù¾î º¸¼¼¿ä. DeleteDC( memdc ); ´Ù ±×¸®°í ³ª¼ DC¸¦ µ¹·ÁÁÝ´Ï´Ù. 11. ½ÇÇàÇÏ¸é ±ÛÀÚ°¡ ³»·Á°¬´Ù - ¿Ã¶ó°¬´Ù ÇÒ °ÍÀÔ´Ï´Ù. ¾Æ¹ö... ´ÔÀÇ ¿äûÀ¸·Î ¹«Èî... ÇÑ À̹ÌÁö¸¦ ÇÒ±î ÇÏ¿´À¸³ª Àúµù µéÀÇ ÀúÇ×ÀÌ °ÆÁ¤µÇ¾î ±×³É ±ôÂïÇÑ À̹ÌÁö·Î ÀÛ¾÷ÇÕ´Ï´Ù. ¸®Çÿ¡¼ »ó°ü¾ø´Ù°í Çϸé ÀÌÈÄ À̹ÌÁö ÀÛ¾÷¿¡¼´Â ¹«Èî... ÇÑ À̹ÌÁö¸¦ ¾µ±î »ý°¢ÁßÀÔ´Ï´Ù¸¸... |
| ||
|
|