WTL±×·³ GDI¿ÀºêÁ§Æ®ÀÇ ÆæÀ»CPenTÀ̶ó°í ÇÏ´Â ÅÛÇø´ Ŭ·¡½º¿¡¼­ ĸ½¶È­Çϰí ÀÖ½À´Ï´Ù. ÅÛÇø´ Àμö´Âbool°ªÀ¸·Î trueÀÇ °æ¿ì´Â ¼Ò¸êÀÚ·ÎDeleteObject()¸¦ È£ÃâÇØ  falseÀÇ °æ¿ì´Â È£ÃâÇÏÁö ¾Ê½À´Ï´Ù.  atlgdi.hÇì´õ¿¡¼­´Â typedef¿¡ ÀÇÇØ ´ÙÀ½°ú °°ÀÌ ¼±¾ðµÇ°í ÀÖ½À´Ï´Ù.

// atlgdi.h³»

typedef CPenT<false>  CPenHandle;

typedef CPenT<true>   CPen;

                      


¡¡WTLÀÇCPenŬ·¡½º´Â ,MFCÀÇ µ¿¸íÀÇ Å¬·¡½º¿Í °ÅÀÇ °°Àº ¸â¹ö ÇÔ¼ö¸¦ ÁغñÇØ ÀÖ½À´Ï´Ù. ÀÌÇÏ¿¡ ³ªÅ¸³»´Â °ÍÀº CPenŬ·¡½º¸¦ »ç¿ëÇØ Ŭ¶óÀÌ¾ðÆ® ±¸Çü¿¡ Á¢Çϴ Ǫ¸¥ Ÿ¿øÀ» ¹¦È­ ÇÏ´Â ¿¹ÀÔ´Ï´Ù.

 

// WM_PAINT¸Þ¼¼Áö Çڵ鷯

void OnPaint(HDC /*hDC*/){

    CPaintDC dc(m_hWnd);

 

    // ±½±â2·Î Ǫ¸¥ ½Ç¼±ÀÇ ÆæÀ» ÀÛ¼ºÇØ  ¼±ÅÃ

    CPen pen;

    pen.CreatePen(PS_SOLID, 2, RGB(0, 0, 255));

    HPEN hOldPen = dc.SelectPen(pen);

 

    // Ŭ¶óÀÌ¾ðÆ® ±¸ÇüÀ» ÃëµæÇØ Ÿ¿øÀ» ¹¦È­

    CRect rect;

    GetClientRect(rect);

    dc.Ellipse(rect);

 

    // ¿øÀÇ ÆæÀ» ¼±ÅÃ

    dc.SelectPen(hOldPen);

}

                      


¡¡ÀÌ ¿¹¿¡¼­´Â  ¿ì¼± Ææ ¿ÀºêÁ§Æ®¸¦ ÀÛ¼ºÇØ  ±×°ÍÀ»SelectPen()·Î ÇöÀçÀÇ ÆæÀ¸·Î¼­ ¼±ÅÃÇϰí ÀÖ½À´Ï´Ù. SelectPen()(Àº)´Â Àμö¿¡HPENÇüÅÂÀÇ º¯¼ö¸¦ ¹Þ½À´Ï´Ù¸¸ , CPenTŬ·¡½º´ÂHPENº¯È¯ ¿¬»êÀÚ¸¦ °¡Áö°í ÀÖÀ¸¹Ç·Î ±×´ë·Î °Ç³×ÁÙ ¼ö°¡ ÀÖ½À´Ï´Ù.  SelectPen()Àº ÀÌÀüÀÇ Ææ ÇÚµéÀ» µ¹·ÁÁֹǷΠ À̰ÍÀ»hOldPenÀ̶ó°í ÇÏ´Â º¯¼ö¿¡ º¸Á¸ÇØ µÓ´Ï´Ù.

´ÙÀ½¿¡ ¿øÀ» ¹¦È­ ÇÕ´Ï´Ù. ±½±â°¡ 2 ·Î Ǫ¸¥ ½Ç¼±ÀÇ ¿øÀÌ ¹¦È­ µË´Ï´Ù.

¸¶Áö¸·À¸·Î  ¹æ±ÝÀü º¸Á¸ÇØ µÐ ¿øÀÇ Ææ Çڵ鿡 µÇµ¹¸®±â À§ÇØ ÀçÂ÷SelectPen()¸¦ È£ÃâÇØ ¿øÀÇ Ææ ÇÚµéÀ» ¼±ÅÃÇÕ´Ï´Ù.

¡¡±×·±µ¥ WTL´Â ½ºÅå Ææµµ ¼­Æ÷Æ®Çϰí ÀÖ½À´Ï´Ù. ÀÌÇÏ¿¡ ³ªÅ¸³»´Â °ÍÀº  ½ºÅå Ææ¿¡ ÀÇÇØ °ËÀº ½Ç¼±ÀÇ Å¸¿øÀ» ¹¦È­ ÇÏ´Â ¿¹ÀÔ´Ï´Ù.

// WM_PAINT¸Þ¼¼Áö Çڵ鷯

void OnPaint(HDC /*hDC*/){

    CPaintDC dc(m_hWnd);

 

    // ½ºÅå ÆæÀ» ¼±ÅÃ

    HPEN hOldPen = dc.SelectStockPen(BLACK_PEN);

 

    // Ŭ¶óÀÌ¾ðÆ® ±¸ÇüÀ» ÃëµæÇØ , ¿£À» ¹¦È­

    CRect rect;

    GetClientRect(rect);

    dc.Ellipse(rect);

 

    // ¿øÀÇ ÆæÀ» ¼±ÅÃ

    dc.SelectPen(hOldPen);

}

                      


±×¸®°í ,atlmisc.hÇì´õ¿¡ Á¤Àǵǰí ÀÖ´ÙAtlGetStockPen()¶ó°í ÇÏ´Â ±Û·Î¹ú ÇÔ¼ö¸¦ »ç¿ëÇÏ¸é  ½ºÅå ÆæÀÇ ÇÚµéÀ» ÃëµæÇÒ ¼ö°¡ ÀÖ½À´Ï´Ù.

// ½ºÅå ÆæÀÇ ÇÚµéÀ» Ãëµæ

HPEN hStockPen = AtlGetStockPen(BLACK_PEN);