ÅëÇÕ°Ë»ö
¡¤ ¸¶À»¼­ºñ½º¶õ?  ¡¤ Æ÷·³¸¶À»  ¡¤ ÀϹݸ¶À»  ¡¤ Å׸¶¸¶À»  ¡¤ ¸¶À»·©Å·  ¡¤ Ȱµ¿¿Õ
¡¤ µ¦½ºÆÛÆ®¶õ?  ¡¤ TECBOX   ¡¤ PRSBOX   ¡¤ ÀÌ¿ë¾È³»  
¡¤ DEXTÁ¦Ç°±º  ¡¤ ³»ºÎÅëÁ¦½Ã½ºÅÛ  ¡¤ ¼Ö·ç¼Çº£ÀÌ  ¡¤ S/W & ESD ÄÄÆ÷³ÍÆ®
¡¤ ¾ÆÀÌÆ¼Æ®·£µå  ¡¤ Á¦ÈÞ¹®ÀÇ  ¡¤ Event Mall
¡¤ ImDev-¸®Äí¸£ÆÃ  ¡¤ ImDev-¾Æ¿ô¼Ò½Ì  ¡¤ ´å³ÝÄÁ¼³ÆÃ
¡¤ IT °úÁ¤  ¡¤ DOT Zone
¡¤ LiveSeminar  ¡¤ LiveConference
Visual C++ Æ÷·³¸¶À» ÀÔ´Ï´Ù.
  ¸¶À»µî±Þ Visual C++   ÀÌ ¸¶À»Àº Æ÷·³¸¶À» ÀÔ´Ï´ÙÀÌ ¸¶À»Àº ÀÚÀ¯°¡ÀÔÁ¦ ¸¶À» ÀÔ´Ï´Ù ¸¶À»¼Ò°³ ÆäÀÌÁö·Î À̵¿ ÀüÀÔ½Åû
¸¶À»ÃÌÀåÃÌÀå ³ª¼ºÈÆ ÁֹΠ31990 since 2006-12-29
¿ì¸®¸¶À» °øÁö»çÇ×
Áú¹®&´äº¯
°­ÁÂ&ÆÁ
ÀÚÀ¯°Ô½ÃÆÇ
ÀÚ·á½Ç
¾Ù¹ü
°³ÀÎ°Ô½ÃÆÇ
¸¶À» °Ô½ÃÆÇ
µî·ÏµÈ ¸¶À» °Ô½ÃÆÇÀÌ
¾ø½À´Ï´Ù.
¶ûµ¥ºê °Ô½ÃÆÇ
Ä®·³ °Ô½ÃÆÇ
°³¹ßÀÚ °íÃæ»ó´ã
Dev Talk
ÀÚÀ¯Åä·Ð¹æ
º­·è½ÃÀå
À糪¹Ì ¿ì½º°³
  ITÀ̾߱â
  ³ë¶¥¿£Áö´Ï¾îÀÇ ³ëÆ®
  °í°´Áö¿ø °Ô½ÃÆÇ
¸¶ÀÌ µ¥ºêÇǾÆ
 ³ªÀÇ e-Money ³»¿ª
 È°µ¿¿Õ My Page
 ½ºÅ©·¦ÇÑ °Ô½Ã±Ûº¸±â
 ÂÊÁö°ü¸®
 Áּҷϰü¸®
 ÀÏÁ¤°ü¸®

 °­ÁÂ&ÆÁ
 ºñÆ®¸Ê¿¡¼­ Åõ¸íó¸® ÇØ ÁÖ´Â ¹ý.  | 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.


³¡....
ÄÚ¸àÆ®¾²±â
  ÁÁÀ½   ³î¶÷   ±Ã±Ý   È­³²   ½½ÇÄ   ÃÖ°í   ħ¹¬   ½Ã¹«·è   ºÎ²ô·³   ³­°¨
* ÄÚ¸àÆ®´Â 500ÀÚ À̳»(¶ç¾î¾²±â Æ÷ÇÔ)·Î Àû¾îÁÖ¼¼¿ä.
¸ñ·Ï º¸±â   Áö±Ý º¸°í °è½Ã´Â ±ÛÀ» ȸ¿ø´ÔÀÇ my Mblog >> ½ºÅ©·¦¿¡ ³Ö¾îµÎ°í ´ÙÀ½¿¡ ¹Ù·Î º¸½Ç ¼ö ÀÖ½À´Ï´Ù.  

 µ¦½ºÆÛÆ®(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¿ø
ȸ»ç¼Ò°³  |   °³ÀÎÁ¤º¸Ãë±Þ¹æÄ§  |  Á¦ÈÞ¹®ÀÇ  |   ±¤°í¹®ÀÇ  |   E-Mail ¹«´Ü¼öÁý°ÅºÎ  |   °í°´Áö¿ø  |   ÀÌ¿ë¾È³»  |   ¼¼±Ý°è»ê¼­
°øÁ¤°Å·¡À§¿øÈ¸ °í½Ã Á¦ 2000-1È£¿¡ µû¸¥ »ç¾÷ÀÚµî·Ï¹øÈ£ ¾È³»: 220-81-90008 / ´ëÇ¥: È«¿µÁØ
¼­¿ï½Ã °­³²±¸ ¿ª»ïµ¿ 662-18 °­³²ÅÚ·¹ÇǾƺôµù 9Ãþ / TEL. 02_511_4824 / FAX. 02_511_4823
Copyright ¨Ï (ÁÖ) µ¥ºêÇǾÆ. All rights reserved.