|
 |
 |
| ¸¶À» °Ô½ÃÆÇ |
µî·ÏµÈ
¸¶À» °Ô½ÃÆÇÀÌ
¾ø½À´Ï´Ù. |
|
|
|
|
 |
|
|
|
|
|
|
ºñÆ®¸Ê¿¡¼ Åõ¸íó¸® ÇØ ÁÖ´Â ¹ý. | Graphic |
2000-11-22 ¿ÀÈÄ 1:45:40 |
|
| ¹ÚÀÏ
|
¹øÈ£:
1062
/ ÀÐÀ½:6,005 |
Åõ¸í ºñÆ®¸Ê ó¸®ÇØÁÖ´Â ¹ý
ÀÛ¼ºÀÚ: ¹ÚÀÏ(will78@nownuri.net)
1. °³¿ä ºñÆ®¸ÊÀÇ ¹ÙÅÁÀ» Åõ¸íó¸® ÇØ ÁÖ´Â ±â¹ý¿¡ ´ëÇØ ¼³¸íÇϰڽÀ´Ï´Ù. ÀǿܷΠ¼Ò½º´Â ¸¹Àºµ¥ ½ÇÁ¦ÀûÀ¸·Î ±× ¼Ò½º¿¡ ´ëÇÑ ¼³¸íÀÌ Àß µÇ¾î ÀÖ´Â ¹®¼´Â ã±â Èûµé´õ±º¿ä. ¿ì¼± ¿ì ¸®´Â ȸ鿡 »Ñ·ÁÁÙ BitmapÀ» Resource ¿¡ °¡Áö°í ÀÖ°í, Åõ¸íÈ µÇ±â¸¦ ¿øÇÏ´Â ¿µ¿ªÀº ÇÑ °¡Áö ƯÁ¤ÇÑ »öÀ¸·Î Ä¥ÇØÁ® ÀÖ´Ù´Â °ÍÀ» °¡Á¤ÇÕ´Ï´Ù. ¶ÇÇÑ ´ë»óÀº ½ÇÁúÀûÀ¸·Î Bitmap°ú DC ¸¦ ÀÌ¿ëÇØ¼ À̹ÌÁö°¡ ¾î¶»°Ô »Ñ·ÁÁø´Ù´Â Á¤µµÀÇ °³³äÀ» ¾Ë°í ÀÖ´Ù°í »ý°¢ÇϰڽÀ´Ï´Ù.
2. ´ë·«ÀûÀÎ °³³ä ÀÌÇØ¿Í ÇÊ¿äÇÑ ÇÔ¼ö ¼³¸í
CDC::SetBkColor CDC::BitBlt
ºñÆ®¸ÊÀ» Åõ¸íÈÇÒ ¶§ ²À ÇÊ¿äÇÑ ÇÔ¼öÀÔ´Ï´Ù. SetBkColor ÇÔ¼ö´Â ´ë»ó ºñÆ®¸Ê ÀÇ ¹è°æ»öÀ» °áÁ¤ÇØÁÖ´Â ÇÔ¼öÀ̰í BitBlt´Â DCµç CBitmap ÀÌµç ¼·Î°£ÀÇ µ¥ÀÌÅ͸¦ º¹»çÇØ ÁÜÀ¸·Î¼ Ãâ·ÂÇØÁÖ´Â ÇÔ¼öÀÔ´Ï´Ù. (À½... ±Û»¡ÀÌ Âü ¾øÁÒ? -.-a...) Áï, ¿ì¸®°¡ CDC memDC; ¶ó°í ¼±¾ðÇÑ ÈÄ memDC ¿¡ ±×¸²À» ÀúÀåÇϰí À̰ÍÀ» GetClientDC this(dc); ¿Í °° ÀÌ ¾òÀº ȸé¿ë DC¿¡ ´Ü¼øÈ÷ µ¥ÀÌÅ͸¦ »Ñ·ÁÁֱ⸸ ÇÏ¸é ±×¸²ÀÌ È¸é¿¡ ³ªÅ¸³ª´Â °ÍÀÔ´Ï´Ù. °³³äÀûÀ¸·Î´Â CDC´Â ¸Þ¸ð¸® Æ÷ÀÎÅ͸¦ ¸¸µå´Âµ¥ ±× Áß GetClientDC this(dc); ÀÌ·± ³à¼® À̳ª OnPaint(pDC) °°Àº ³à¼®Àº ¸ð´ÏÅÍ¿¡ º¸¿©Áö°í ÀÖ´Â µ¥ÀÌÅÍÀÇ ¸Þ¸ð¸® Æ÷ÀÎÅͶó°í »ý°¢ ÇսôÙ. ¿ì¸®´Â ÀÌ¹Ì Ãâ·ÂÇϰíÀÚ ÇÏ´Â ºñÆ®¸Ê¿¡¼ Åõ¸íÈÇÏ°í ½ÍÀº ºñÆ®¸ÊÀÇ »ö±òÀ» Á¤Çß ½À´Ï´Ù.(¹ØÀÇ Äڵ忡´Â »¡°£»ö(RGB(255,0,0)ÀÌ µÉ °ÍÀÔ´Ï´Ù. ) À̰ÍÀº ¸¶Ä¡ ¿µÈÀÇ Æ¯¼öÈ¿ °ú Áß ºí·ç ½ºÅ©¸°À» ÀÌ¿ëÇØ¼ µÚ¿¡ ´Ù¸¥ ¹è°æÀ» ºÙÀÌ´Â °Í°ú °°½À´Ï´Ù. ÀÌÁ¦ Åõ¸íÈ ÇÏ´Â µ¥ ÇÊ¿äÇÑ mask ºñÆ®¸ÊÀ» ¸¸µé¾î¾ß ÇÕ´Ï´Ù. mask ºñÆ®¸ÊÀº Åõ¸íÀ¸·Î »ç¶óÁú °÷Àº Èò »öÀ¸ ·Î ³ª¿À°í Ãâ·ÂµÇ¾î¾ß ÇÏ´Â ºñÆ®¸ÊÀº °ËÀº »öÀ¸·Î ³ª¿À´Â Èæ¹é ºñÆ®¸ÊÀÔ´Ï´Ù. ±×¸®°í ¿ì¸® ´Â mask ºñÆ®¸Ê°ú ¹Ì¸® ÀúÀåÇØ ³õÀº ¹è°æ ºñÆ®¸Ê, ½ÇÁ¦ Ãâ·ÂÇϱ⸦ ¿øÇÏ´Â ºñÆ®¸Ê, ÀÌ 3 °³ÀÇ ºñÆ®¸ÊÀ» AND, OR ¿¬»êÀ» ÅëÇØ¼ Åõ¸íºñÆ®¸ÊÀ» ¸¸µé °ÍÀÔ´Ï´Ù.
3. ÄÚµå º¸±â... ¼·ÐÀÌ ³Ê¹« ±æ¾ú³×¿ä.. -.-;; ¹Ø¿¡ ¼Ò½º¿Í ³ª¸§´ë·Î ÀÚ¼¼ÇÏ°Ô ÀûÀº ÁÖ¼®ÀÌ ÀÖ½À ´Ï´Ù. ÄÚµåÀÇ ÁøÇàÀ» ÇÑ ¹ø¿¡ ¾Ë ¼ö ÀÖ°Ô Çϱâ À§ÇØ ÃÖ´ëÇÑ ¸ðµç ¼Ò½º¸¦ ÇÑ ÇÔ¼ö¿¡ ´ã¾Ò½À ´Ï´Ù. õõÈ÷ Àо½Ã°í ¸ð¸£°Ú´Ù ½ÍÀº ºÎºÐÀº ÁöÀûÇØ ÁֽʽÿÀ.
BOOL CTransBitmap::OnEraseBkgnd(CDC* pDC) { // TODO: Add your message handler code here and/or call default
#define WHITE RGB(255,255,255) #define RED RGB(255,0,0) #define BLACK RGB(0,0,0)
if(m_nFirst == TRUE) { ////////////////////////////////////////////////////////////// // ¹è°æÀ» ÀúÀåÇÑ´Ù. CRect rcClient; GetClientRect(&rcClient);
m_dcBkg.CreateCompatibleDC(pDC); m_bmpBkg.CreateCompatibleBitmap(pDC, rcClient.Width(), rcClient.Height()); CBitmap *m_pbmpBkgOld = m_dcBkg.SelectObject(&m_bmpBkg); m_dcBkg.BitBlt(0, 0, rcClient.Width(), rcClient.Height(), pDC, 0, 0, SRCCOPY);
////////////////////////////////////////////////////////////// // Ãâ·ÂÇϱ⸦ ¿øÇÏ´Â ºñÆ®¸Ê DC »ý¼º m_pBitmapDC = new CDC; m_pBitmapDC->CreateCompatibleDC(pDC); CBitmap *pOldSrcBitmap = m_pBitmapDC->SelectObject (m_pBitmap1); m_nFirst = FALSE;
}
////////////////////////////////////////////////////////////// // ºñÆ®¸ÊÀ» »ç¿ëÇϱâ À§ÇØ µû·Î ´Ù¸¥ ¸Þ¸ð¸®¿¡ º¹»çÇÑ´Ù. CDC SrcDC; CBitmap srcBmp;
SrcDC.CreateCompatibleDC(pDC); srcBmp.CreateCompatibleBitmap(pDC, m_nWidth, m_nHeight); SrcDC.SelectObject(&srcBmp); SrcDC.BitBlt( 0, 0, m_nWidth, m_nHeight, m_pBitmapDC, 0, 0, SRCCOPY ) ;
/////////////////////////////////////////////////////////////// // masking À» Çϱâ À§ÇÑ DC »ý¼º. mask ºñÆ®¸ÊÀº Èæ¹éÀ» »ç¿ëÇÑ´Ù. CDC maskDC; CBitmap maskBmp;
maskDC.CreateCompatibleDC(&SrcDC); // Èæ¹é ºñÆ®¸Ê »ý¼º... maskBmp.CreateBitmap(m_nWidth, m_nHeight, 1, 1, NULL); CBitmap *pOldMaskBmp = maskDC.SelectObject(&maskBmp);
// ¿øÇÏ´Â »öÀ» ¹è°æ»öÀ¸·Î ÁöÁ¤Çϰí BitBlt Çϸé // ¿øº» µ¥ÀÌŸ Áß Áö¿ì°í ½ÍÀº °÷Àº Èò»ö, ´Ù¸¥ °÷Àº °ËÀº »öÀ¸·Î ³ªÅ¸³ª´Â // Mask °¡ ¿Ï¼ºµÈ´Ù. // Áï SetBkColorÀº Ä®¶ó¸¦ Èæ¹éÀ¸·Î º¯È¯ÇÒ¶§ // ¹è°æ(Èò»ö)À¸·Î 󸮵Ǿî¾ß ÇÏ´Â »öÀ» Á¤ÇØÁÖ´Â ÇÔ¼ö´Ù. // ¹è°æÀ» Á¦¿ÜÇÑ ´Ù¸¥ »öÀº ¸ðµÎ °ËÀº »öÀ¸·Î Ç¥ÇöµÈ´Ù. SrcDC.SetBkColor( RED ); maskDC.BitBlt( 0, 0, m_nWidth, m_nHeight, &SrcDC, 0, 0, SRCCOPY);
// ¿øº» µ¥ÀÌŸ¿Í mask µ¥ÀÌŸ¸¦ °ãÃļ ¿øÇÏ´Â ±×¸²¸¸ »Ì¾Æ³» // SrcDC ¿¡ ÀúÀåÇÑ´Ù. // Åõ¸íó¸® ÇÏ°í ½ÍÀº ¿µ¿ªÀº °ËÀº »öÀ¸·Î Ãâ·ÂµÈ´Ù. // À̰ÍÀº SetBkColor ÇÔ¼ö¸¦ ÅëÇØ¼ °¡´ÉÇѵ¥ À̹ø¿¡´Â À§¿Í´Â ´Ù¸£°Ô // Èæ¹é(maskDC) ¿¡¼ Ä®¶ó(SrcDC) ·ÎÀÇ º¯È¯ÀÌ´Ù. // À̶§¿¡´Â Èæ¹é ºñÆ®¸ÊÀÇ Èò»ö(1) ºÎºÐÀº // ´ë»ó Ä®¶ó ºñÆ®¸ÊÀÇ ¹è°æ»öÀ¸·Î ¹Ù²î°í // °ËÀº»ö(0) ºÎºÐÀº ´ë»ó Ä®¶ó ºñÆ®¸ÊÀÇ Foreground color ·Î ¹Ù²ï´Ù. // BitBlt ´Â ÀÌ·¸°Ô maskDC¸¦ Ä®¶ó ºñÆ®¸ÊÀ¸·Î º¯È¯½ÃŲ ÈÄ¿¡ // SrcDC¶û AND ¿¬»êÀ» ÇÏ°Ô µÈ´Ù. // °á°úÀûÀ¸·Î maskDC¿¡¼ Èò»öÀÌ´ø ºÎºÐÀº BitBlt ¸¦ ÅëÇØ // °ËÀº »öÀ¸·Î ¹Ù²î°í, // °ËÀº »öÀº 0À̹ǷΠSrcDC¿Í AND ¸¦ Çϸé SrcDC µµ // °°Àº À§Ä¡ÀÇ ºñÆ®¸ÊÀÌ °ËÀº »öÀ¸·Î ¹Ù²ï´Ù. // Èò »öÀº 1À̹ǷΠAND ¿¬»êÀ» ÇÏ¸é ±×´ë·Î SrcDC ÀÇ ¿ø·¡ ±×¸²ÀÌ ³²´Â´Ù. // ÀÌ ¼¼ ÁÙÀÇ Äڵ尡 ³¡³ª¸é // SrcDC´Â ¾ø¾Ù·Á´ø ¹è°æÀÌ °ËÀº »öÀ¸·Î Ä¥ÇØÁø ºñÆ®¸ÊÀÌ µÈ´Ù. SrcDC.SetBkColor( BLACK ); SrcDC.SetTextColor( WHITE ); SrcDC.BitBlt( 0, 0, m_nWidth, m_nHeight, &maskDC, 0, 0, SRCAND);
///////////////////////////////////////////////////////////////// // ÃÖÁ¾ ±×¸²À» ÀúÀåÇϱâ À§ÇÑ DC CDC memDC; CBitmap memBmp; memDC.CreateCompatibleDC(pDC); memBmp.CreateCompatibleBitmap(pDC, m_nWidth, m_nHeight); CBitmap *pOldMemBmp = memDC.SelectObject(&memBmp);
// ÃÖÁ¾ ÇÕÄ¡±â // ÀÏ´Ü ¹è°æÀ» º¹»çÇÑ´Ù. memDC.BitBlt(0, 0, m_nWidth, m_nHeight, &m_dcBkg, 0, 0, SRCCOPY); // masking °ú ¹è°æÀ» AND ¿¬»êÇØ Åõ¸íó¸®µÈ ±×¸²ÀÌ ÂïÈú ºÎºÐÀº // °ËÀº»öÀ¸·Î Ä¥ÇØÁø ¹è°æÀ» Ãâ·ÂÇØ ÁØ´Ù. // À̹ø¿¡´Â ´ë»ó ºñÆ®¸ÊÀÇ ¹è°æ»öÀ» Èò»öÀ¸·Î ó¸®ÇßÀ¸¹Ç·Î // maskDCÀÇ Èò»öÀº Èò»ö, °ËÀº »öÀº °ËÀº »ö... // Áï ¸¶½ºÅ© DC´Â º¯ÇÑ °ÍÀÌ ¾ø´Ù. // ±× ÈÄ¿¡ AND ¿¬»êÀ» ÇϹǷΠ¹è°æ ºñÆ®¸ÊÀº ¿ì¸®°¡ ±× À§¿¡ Ãâ·ÂÇϰíÀÚ ÇÏ´Â // ºñÆ®¸Ê ºÎºÐ¸¸ °ËÀº »öÀ¸·Î Ä¥ÇØÁø ºñÆ®¸ÊÀÌ µÈ´Ù. memDC.SetBkColor( WHITE ); memDC.BitBlt(0, 0, m_nWidth, m_nHeight, &maskDC, 0, 0, SRCAND); // ÀÌÁ¦ ¿øÇÏ´Â À̹ÌÁö »©°í´Â °ËÀº »ö ó¸®µÈ ºñÆ®¸ÊÀ» OR ¿¬»êÀ¸·Î ºÙ¿©ÁØ´Ù. // OR ¿¬»êÀ» ÇÏ¸é °ËÀº »öÀº 0À̹ǷΠ¹«½ÃµÈ´Ù. // ¹è°æÀº ±×¸²ºÎºÐÀÌ 0(°ËÀº»ö)ÀÌ°í ±×¸²Àº ¹è°æºÎºÐÀÌ 0(°ËÀº»ö)À̹ǷΠ// OR ¿¬»ê ÈÄ¿¡´Â ¿ì¸®°¡ ¿øÇÏ´Â ¹è°æÀÌ Åõ¸íÈ µÈ ±×¸²À» ¾ò´Â´Ù. memDC.BitBlt(0, 0, m_nWidth, m_nHeight, &SrcDC, 0, 0, SRCPAINT);
// ÃÖÁ¾ÀûÀÎ °á°ú¸¦ ȸ鿡 »Ñ·ÁÁØ´Ù. pDC->BitBlt( 0, 0, m_nWidth, m_nHeight, &memDC, 0, 0, SRCCOPY );
memDC.SelectObject(pOldMemBmp); return CStatic::OnEraseBkgnd(pDC); }
4. MSDN ÀÇ Áß¿äÇÑ ºÎºÐ
CDC::SetBkColor virtual COLORREF SetBkColor( COLORREF crColor );
If destination, source, and pattern bitmaps do not have the same color format, the BitBlt function converts the source and pattern bitmaps to match the destination. The foreground and background colors of the destination bitmap are used in the conversion.
When the BitBlt function converts a monochrome bitmap to color, it sets white bits (1) to the background color and black bits (0) to the foreground color. The foreground and background colors of the destination device context are used. To convert color to monochrome, BitBlt sets pixels that match the background color to white and sets all other pixels to black. BitBlt uses the foreground and background colors of the color device context to convert from color to monochrome.
SRCAND Combines pixels of the destination and source bitmaps using the Boolean AND operator.
SRCCOPY Copies the source bitmap to the destination bitmap.
SRCPAINT Combines pixels of the destination and source bitmaps using the Boolean OR operator.
³¡....
|
|
|
|
|
|
|
|
|
|
|
|
µ¦½ºÆÛÆ®(dExpert)
|
|
 |
|
|
9,000¿ø |
|
|
|
15,000¿ø |
|
|
|
15,000¿ø |
|
|
|
15,000¿ø |
|
|
|
10,000¿ø |
|
|
|
5,000¿ø |
|
|
|
15,000¿ø |
|
|
 |
|
|
3,000¿ø |
|
|
|
50,000¿ø |
|
|
|
3,000¿ø |
|
|
|
3,000¿ø |
|
|
|
9,000¿ø |
|
|
|
10,000¿ø |
|
|
|
10,000¿ø |
|
|
|
|
|
|
|
|
|