15,979
社区成员
发帖
与我相关
我的任务
分享
void CMyDlg::OnPaint()
{
//.....(省略MFC自动生成的代码),下面是我的代码:
CClientDC dc(this);
CRect rt;
GetClientRect(&rt);
m_MemDC.CreateCompatibleDC(&dc);
m_Bmp.CreateCompatibleBitmap(&dc, rt.Width(), rt.Height());
m_MemDC.SelectObject(&m_Bmp);
m_MemDC.FillSolidRect(0,0,rt.Width(), rt.Height(),RGB(200,180,0));
PopEllipse(m_MemDC.GetSafeHdc(), &g_OffSet);
//==绘制圆==========================================
CBrush *pOldBrush = (CBrush*)m_MemDC.SelectStockObject(NULL_BRUSH);
CPen pen;
pen.CreatePen(PS_SOLID, 5, RGB(0,0,0));
m_MemDC.SelectObject(&pen);
m_MemDC.Ellipse(40, 40, 400, 400);
//==文字绘制部分===========================================
SetBkMode(m_MemDC.GetSafeHdc(), TRANSPARENT);
m_MemDC.SelectObject(&m_font);
CPen textPen;
textPen.CreatePen(PS_SOLID, 1, RGB(0,0,0));
m_MemDC.SelectObject(&textPen);
m_MemDC.TextOut(40, 410, _T("小狗嗷嗷叫"));
//== 复制到屏幕上去 =======================================================
dc.BitBlt(0, 0, rt.Width(), rt.Height(), &m_MemDC, 0, 0, SRCCOPY);
m_Bmp.DeleteObject();
m_MemDC.DeleteDC();
}
CPaintDC dc(this);
CDC memDC;
memDC.CreateCompatibleDC(dc);
CBitmap bmp;
bmp.CreateCompatibleBitmap(dc, ...);
memDC.SelectObject(...);
...
dc.BitBlt/StretchBlt(...,&memDC, ...SRCCOPY);
memDC.SelectObject(...);
bmp.DeleteObject();
memDC.DeleteDC();