CreateCompatibleDC

¿øÇü

HDC CreateCompatibleDC(HDC hdc);

MFC ¿øÇü

virtual BOOL CDC::CreateCompatibleDC( CDC* pDC );

Àμö

¢ºhdc : ÂüÁ¶ÇÒ DCÀÇ ÇÚµé. ÀÌ °ªÀÌ NULLÀÏ °æ¿ì ÇöÀç È­¸é°ú ȣȯµÇ´Â DC¸¦ »ý¼ºÇÑ´Ù.

¸®ÅÏ

¼º°øÇÏ¸é »ý¼ºÇÑ ¸Þ¸ð¸® DCÀÇ ÇÚµéÀ» ¸®ÅÏÇÏ¸ç ½ÇÆÐÇÒ °æ¿ì NULLÀ» ¸®ÅÏÇÑ´Ù.

¼³¸í

Àμö·Î ÁÖ¾îÁø hdc¿Í ȣȯµÇ´Â ¸Þ¸ð¸® DC¸¦ »ý¼ºÇÑ´Ù. ¿©±â¼­ ȣȯµÈ´Ù´Â ¶æÀº »ö»ó Æ÷¸ËÀÌ °°´Ù´Â ¶æÀÌ¸ç »ö»ó Æ÷¸ËÀÌ °°Àº DC³¢¸®´Â ºñÆ®¸ÊÀ» Àü¼ÛÇÒ ¼ö ÀÖ´Ù.

È­¸é DC´Â ¸Þ¸ð¸® »ó¿¡ Á¸ÀçÇÏ´Â ±×¸®±â Ç¥¸éÀÌ´Ù. ½ÇÁ¦ È­¸é DC¿Í ¸¶Âù°¡Áö·Î ¸ðµç GDI Ãâ·Â ÇÔ¼ö¸¦ »ç¿ëÇÒ ¼ö ÀÖÀ¸¹Ç·Î ÇÁ·Î±×·¥ ³»ºÎ¿¡¼­ ¹Ì¸® ±×¸®±â¸¦ ÇÒ ¶§ ¸Þ¸ð¸® DC¸¦ »ç¿ëÇÑ´Ù. ¸Þ¸ð¸® DC·Î º¸³»Áö´Â Ãâ·ÂÀº ¸Þ¸ð¸® DC¿¡ ¼±ÅõǾî ÀÖ´Â ºñÆ®¸ÊÀÇ Ç¥¸éÀ¸·Î Ãâ·ÂµÈ´Ù.

ÃÖÃÊ ¸Þ¸ð¸® DC°¡ »ý¼ºµÇ¸é ±×¸®±â Ç¥¸éÀº 1Çȼ¿Â¥¸® Èæ¹é ºñÆ®¸ÊÀ» °¡Áö¸ç ºñÆ®¸ÊÀ» ¼±ÅÃÇØ ÁÖ¸é ÀÌ ºñÆ®¸ÊÀÇ ³ôÀÌ¿Í Æø, »ö»ó Æ÷¸ËÀ» °¡Áö´Â ±×¸®±â Ç¥¸éÀÌ ¸¸µé¾îÁø´Ù. µû¶ó¼­ ¸Þ¸ð¸® DC¿¡ ¹Ì¸® ±×¸®±â¸¦ ÇÏ°íÀÚÇÒ ¶§´Â ¸ÕÀú CreateCompatibleBitmap ÇÔ¼ö·Î »ý¼ºÇÑ ¿øÇÏ´Â Å©±âÀÇ ºñÆ®¸ÊÀ» ¸ÕÀú ¼±ÅÃÇØ ÁÖ¾î¾ß ÇÑ´Ù. ¶Ç´Â ¹Ì¸® Àоî³õÀº ±×¸²À» Ãâ·ÂÇÒ°íÀÚ ÇÒ ¶§´Â LoadBitmapÀ¸·Î ÀÐÀº ºñÆ®¸ÊÀ» ¸Þ¸ð¸® DC¿¡ ¼±ÅÃÇØ ÁØ ÈÄ BitBlt µîÀÇ ÇÔ¼ö·Î È­¸é DC·Î Àü¼ÛÇÑ´Ù.

´ÙÀ½ ÄÚµå´Â ºñÆ®¸ÊÀ» È­¸éÀ¸·Î Ãâ·ÂÇÏ´Â °¡Àå ÀϹÝÀûÀÎ ÄÚµåÀÌ´Ù. È­¸é DC¿Í ȣȯµÇ´Â ¸Þ¸ð¸® DC¸¦ »ý¼ºÇÑ ÈÄ ºñÆ®¸ÊÀ» ¸Þ¸ð¸® DC¿¡ ¼±ÅÃÇÏ°í BitBlt·Î È­¸é DC·Î Àü¼ÛÇÑ´Ù. È­¸é DC´Â ºñÆ®¸ÊÀ» ¼±ÅÃÇÒ ¼ö ¾ø±â ¶§¹®¿¡ ¹Ýµå½Ã ¸Þ¸ð¸® DC¿¡ ºñÆ®¸ÊÀ» ¼±ÅÃÇÑ ÈÄ ¿øÇÏ´Â ºÎºÐÀ» È­¸é DC·Î Àü¼ÛÇØ¾ß ÇÑ´Ù.

MemDC=CreateCompatibleDC(hdc);
MyBitmap=LoadBitmap(g_hInst, MAKEINTRESOURCE(IDB_BITMAP1));
OldBitmap=(HBITMAP)SelectObject(MemDC, MyBitmap);
GetObject(MyBitmap,sizeof(BITMAP),&bit);
bx=bit.bmWidth;
by=bit.bmHeight;
		
BitBlt(hdc, 0,0,bx,by,MemDC,0,0,SRCCOPY);

¸Þ¸ð¸® DC¸¦ »ç¿ëÇÑ ÈÄ¿¡´Â ¹Ýµå½Ã DeleteDC·Î ÇØÁ¦ÇØ ÁÖ¾î¾ß ÇÑ´Ù.

Âü°íÇÔ¼ö CreateCompatibleBitmap
Ç÷¿Æû 95ÀÌ»ó
ÂüÁ¶  

written by http://www.winapi.co.kr