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("渋"));
}
};