¸Þ¸ð¸® DC »ç¿ëÇϱâ


1.¿ä¾à

ÀϹÝÀûÀÎ °æ¿ì Draw ¼Óµµ¸¦ ºü¸£°Ô Çϱâ À§Çؼ­ ¸Þ¸ð¸® DC ¸¦ »ç¿ëÇÕ´Ï´Ù. °£´ÜÇÑ Äڵ带 º¸¸é¼­ ±× °úÁ¤À» »ìÆìº¸°Ú½À´Ï´Ù.


2.º»¹®

ƯÁ¤ ¿µ¿ª¿¡ ¿©·¯¹ø ¸¹Àº °úÁ¤À» °ÅÃļ­ ±×¸²À» ±×·ÁÁÖ°Ô µÈ´Ù¸é, Çѹø¿¡ Çϳª¾¿ È­¸é¿¡ ±×¸®´Â °Íº¸´Ù´Â, È­¸é°ú °°Àº ¸ð½ÀÀ» Çϰí ÀÖ´Â È­¸é¿¡ ±×¸²À» ±×¸°ÈÄ, ÃÖÁ¾ÀûÀ¸·Î ¿Ï¼ºµÈ °ÍÀ» È­¸é¿¡ ±×¸®´Â °ÍÀÌ ÈξÀ ºü¸¦°ÍÀÔ´Ï´Ù. Áï, ¸Þ¸ð¸®¸¦ »ç¿ëÇϸé ÈξÀ ºü¸£´Ù´Â °ÍÀÌÁÒ. ÀÌ·¸°Ô ¸Þ¸ð¸®»ó¿¡ Á¸ÀçÇÏ´Â DC ¸¦ ÀÌ¿ëÇÏ¿© È­¸éÀ» ±×·ÁÁÖ´Â °ÍÀ» ¸Þ¸ð¸® DC ¶ó°í ÇÕ´Ï´Ù. ¹æ¹ýÀº ÇöÀç È­¸éÀÇ DC ¿Í °°Àº DC ¸¦ ¸¸µé¾î¼­ ±× DC ¿¡ ƯÁ¤ bitmapÀ» ¼ÂÆÃÇØÁØ´ÙÀ½ ±× bitmap ¿¡ ±×¸²À» ±×·ÁÁÖ°í ±× Bitmap À» »ç¿ëÇÏ¿© ´Ù½Ã ±×¸²À» ¿ø·¡ÀÇ È­¸é DC ¿¡ Çѹø¿¡ ±×·ÁÁÖ´Â ¿ø¸®ÀÔ´Ï´Ù.

¾Æ·¡ÀÇ ¿¹Á¦¸¦ º¸½Ã¸é ÈξÀ ÀÌÇØ°¡ ºü¸£½Ã¸®¶ó ¹Ï½À´Ï´Ù. ^^.


3.¿¹Á¦


// È­¸é°ú °ü·ÃµÈ DC ¸¦ ¾ò½À´Ï´Ù. 

CClientDC dc(this); 



// Client ¿µ¿ªÀÇ Å©±â¸¦ ±¸ÇÕ´Ï´Ù. 

CRect rcClient; 

GetClientRect(&rcClient); 



CBitmap Bitmap;  // ¸Þ¸ð¸® DC ¿¡ »ç¿ëµÉ Bitmap 

CBitmap* pbmOld = NULL; 



// ¸Þ¸ð¸® DC º¯¼ö ¼±¾ð 

CDC dcMem; 

// ÇöÀç È­¸é°ú ´àÀº²ÃÀÎ ¸Þ¸ð¸® DC »ý¼º 

dcMem.CreateCompatibleDC(&dc); 



// ¸Þ¸ð¸® DC ÀÇ Àüü È­¸éÀ» ´ãÀ» ¼ö ÀÖ´Â Å©±âÀÇ bitmap »ý¼º 

Bitmap.CreateCompatibleBitmap(&dc,rcClient.right,rcClient.bottom); 



// ¸Þ¸ð¸® DC ÀÇ bitmap À» »õ·Î¿î bitmap À» »ý¼ºÇÕ´Ï´Ù. 

pbmOld = dcMem.SelectObject(&Bitmap); 

// ±×¸²À» ÇϾé°Ô Ä¥Çϱâ 

dcMem.PatBlt(0, 0,rcClient.right, rcClient.bottom, WHITENESS); 



// ÀÌÁ¦ ¸Þ¸ð¸® DC ¿¡ ±×¸²À» ±×¸³´Ï´Ù. 

// ¼Óµµ ¯!!! 

// ... 

// ... 

// ... 



// ÀÌÁ¦ ´Ù ±×·ÈÀ¸´Ï±î ¿ø·¡ ÀÖ´Â È­¸é dc ¿¡ ¸Þ¸ð¸® dc¸¦ »ç¿ëÇÏ¿© ±×¸²À» ±×¸³´Ï´Ù. 

dc.BitBlt(0,0,rcClient.right,rcClient.bottom, 

          &dcMem, 0, 0, SRCCOPY); 





// ¸¶¹«¸® ÀÛ¾÷ 

// °´Ã¼ delete 

dcMem.SelectObject(pbmOld); 

dcMem.DeleteDC(); 



- 2001.08.13 Smile Seo -