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

// atlgdi.h³»

typedef CRgnT<false>  CRgnHandle;

typedef CRgnT<true>   CRgn;

                      


¡¡WTLÀÇ CRgnŬ·¡½º´Â MFCÀÇ µ¿¸íÀÇ Å¬·¡½º¿Í °ÅÀÇ °°Àº ¸â¹ö ÇÔ¼ö¸¦ ÁغñÇØ ÀÖ½À´Ï´Ù. ¾Æ·¡¿¡ ³ªÅ¸³»´Â °ÍÀº CRgnŬ·¡½º¸¦ »ç¿ëÇØ Ŭ¶óÀÌ¾ðÆ® ¿µ¿ªÀÇ Áß¾Ó¿¡ "Arial Black"ÆùÆ®ÀÇ Ä³¸¯ÅÍ ¶óÀÎÀ» ¹¦È­ ÇÏ´Â ¿¹ÀÔ´Ï´Ù.

 

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

void OnPaint(HDC /*hDC*/){

    CPaintDC dc(m_hWnd);

 

    CRect rect;

    GetClientRect(rect);

 

    // »çÀÌÁî 20 Æ÷ÀÎÆ®ÀÇ "Arial Black" ÆùÆ®¸¦ ÀÛ¼ºÇØ  ¼±ÅÃ

    CFont font;

    font.CreatePointFont(200, _T("Arial Black"));

    HFONT hOldFont = dc.SelectFont(font);

 

    // ÆÐ½º¸¦ ÀÛ¼º

    dc.BeginPath();

    dc.DrawText(_T("Hello, ATL/WTL"), -1,

        rect, DT_SINGLELINE | DT_CENTER | DT_VCENTER);

    dc.EndPath();

 

    // ¿øÀÇ ÆùÆ®¸¦ ¼±ÅÃ

    dc.SelectFont(hOldFont);

 

    CRgn rgn1;

    rgn1.CreateFromPath(dc);

 

    CRgn rgn2;

    rgn2.CreateRectRgnIndirect(rect);

 

    // ¸®Á¯À» ÇÕ¼º

    rgn1.CombineRgn(rgn1, rgn2, RGN_XOR);

 

    // ¸®Á¯À» Ŭ¸®ÇÎ ¿µ¿ªÀ¸·Î¼­ ¼±ÅÃ

    dc.SelectClipRgn(rgn1);

 

    // ±½±â1·Î ÃÊ·ÏÀÇ ½Ç¼±ÀÇ ÆæÀ» ÀÛ¼ºÇØ , ¼±ÅÃ

    CPen pen;

    pen.CreatePen(PS_SOLID, 1, RGB(0, 128, 0));

    HPEN hOldPen = dc.SelectPen(pen);

 

    // ¼¶ ¸ð¾çÀ» ¹¦È­

    for(int i=0; i<rect.bottom; i+=2){

        dc.MoveTo(0, i);

        dc.LineTo(rect.right, i);

    }

 

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

    dc.SelectPen(hOldPen);

}

                      


¡¡ÀÌ ¿¹¿¡¼­´Â  ¿ì¼± ÆùÆ®¸¦ ÀÛ¼ºÇØ Ä³¸¯ÅÍ ¶óÀÎÀ» ¹¦È­ ÇØ  ±×°ÍÀ» ¹ÙÅÁÀ¸·Î ÆÐ½º¸¦ ÀÛ¼ºÇÕ´Ï´Ù. ±× ÆÐ½º·ÎºÎÅÍ ¸®Á¯À» ÀÛ¼ºÇØ  ÇÑÃþ ´õ Ŭ¶óÀÌ¾ðÆ® ±¸ÇüÀ¸·ÎºÎÅÍ ¸®Á¯À» ÀÛ¼ºÇØ  ÀÌ µÎ °³ÀÇ ¸®Á¯À» CombineRgn()¿¡ ÀÇÇØ ÇÕ¼ºÇÕ´Ï´Ù.  CombineRgn()ÀÇ Á¦3Àμö¿¡´ÂRGN_XORÀ» ÁöÁ¤ÇØ ÀÖÀ¸¹Ç·Î  rgn1(ij¸¯ÅÍ ¶óÀÎ ¸®Á¯)rgn2(Ŭ¶óÀÌ¾ðÆ® ±¸Çü ¸®Á¯) ¸¦ ÇÕÇÑ °ÍÀ¸·ÎºÎÅÍ ¼­·Î °ãÄ£ ºÎºÐÀ» ¾ø¾Ø ¸®Á¯ÀÌ ÀÛ¼ºµË´Ï´Ù.

´ÙÀ½¿¡  ±× ÇÕ¼ºÇÑ ¸®Á¯À» Ŭ¸®ÇÎ ¿µ¿ªÀ¸·Î¼­ ¼±ÅÃÇØ  Å¬¶óÀÌ¾ðÆ® ¿µ¿ª¿¡ ÃÊ·ÏÀÇ ¼¶ ¸ð¾çÀ» ¹¦È­ ÇÕ´Ï´Ù.  ÀÌ ¶§, Ŭ¸®ÇÎ ¿µ¿ªÀ¸·Î¼­ ¼±ÅÃµÈ ¸®Á¯ ºÎºÐ¿¡´Â ¸ð¾çÀÌ ¹¦È­ µÇÁö ¾Ê±â ¶§¹®¿¡  Èò ¹è°æÀÌ ±×´ë·Î º¸ÀÔ´Ï´Ù.