WTL 雙緩存(double buffer)繪圖 & BBS 雙色字

class CTest
        : public CWindowImpl<CTest>,
        public CBufferImpl<CTest>
{
public:
    BEGIN_MSG_MAP(CTest)
        CHAIN_MSG_MAP(CDoubleBufferImpl<CTest>)
    END_MSG_MAP()

    void DoPaint(CDCHandle dc)
    {
        CRect		rect;
        GetClientRect(rect);

        CBrush		cBrushBK;
        cBrushBK.CreateSolidBrush(RGB(255,255,255));
        dc.FillRect(rect, cBrushBK);

        rect.top += 5;
        rect.left += 5;
        rect.right = rect.left + 30;
        rect.bottom = rect.top + 30;

        CBrush		cBrush;
        cBrush.CreateSolidBrush(RGB(0,0,0));

        dc.FillRect(rect, cBrush);
        dc.SetTextColor(RGB(255,0,0));
        dc.SetBkMode(TRANSPARENT);

        CFont		cFont;
        LOGFONTW	FontInfo = {0};
        FontInfo.lfWidth = 30 / 2 - 1;
        FontInfo.lfHeight = 30;
        FontInfo.lfWeight = FW_MEDIUM;
        //FontInfo.lfCharSet = DEFAULT_CHARSET;
        //FontInfo.lfPitchAndFamily = DEFAULT_PITCH | FF_SWISS;
        swprintf_s(FontInfo.lfFaceName, 32, _T("Consolas"));

        cFont.CreateFontIndirect(&FontInfo);
        dc.SelectFont(cFont);

        dc.ExtTextOutW(rect.left, rect.top, ETO_CLIPPED, rect, _T("渋"));
        rect.right = rect.left + 20;
        dc.SetTextColor(RGB(0,255,0));
        dc.ExtTextOutW(rect.left, rect.top, ETO_CLIPPED, rect,_T("渋"));
        rect.right = rect.left + 10;
        dc.SetTextColor(RGB(0,0,255));
        dc.ExtTextOutW(rect.left, rect.top, ETO_CLIPPED, rect, _T("渋"));
    }
};

  

转载于:https://www.cnblogs.com/dforce/articles/3469313.html

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值