MFC 简单的绘图用法_位图

▲ 效果

OnDraw 函数中:

// CMFCApplication1View 绘图
void CMFCApplication1View::OnDraw(CDC* pDC)
{
    CMFCApplication1Doc* pDoc = GetDocument();
    ASSERT_VALID(pDoc);
    if (!pDoc)
        return;

    /*
    a) 定义画家
    b) 定义画笔(画刷)CPen, CBrush
    c) 把画笔交给画家 CDC::SelectObject
   */
    
    CPen pen(PS_DASH, 1, RGB(255, 0, 0));
    CPen* oldPen = pDC->SelectObject(&pen);
    pDC->MoveTo(10, 10);
    pDC->LineTo(120, 10); // 画直线
    // 恢复原来的状态
    pDC->SelectObject(oldPen);

    // 画圆
    pDC->Ellipse(20, 20, 120, 120); // 参数的意思是,外接四边形的左上角点和右下角点

    // 画刷
    CBrush brush(RGB(255, 0, 0));
    pDC->SelectObject(&brush);
    pDC->Ellipse(20, 20, 120, 120);

    // 定义一个位图对象
    CBitmap bitmap;
    bitmap.LoadBitmapW(IDB_BITMAP1);// 资源的ID 加载位图
    CBrush brush2(&bitmap);
    pDC->SelectObject(&brush2);
    pDC->Ellipse(120, 20, 240, 120);

    // CFont 字体
    CFont font;
    // 1000:字体宽度   0.1 倍  TEXT("楷体"):字体风格 
    font.CreatePointFont(1000, TEXT("楷体"));
    pDC->SelectObject(&font);
    pDC->TextOutW(15, 150,TEXT("Hello World~"));
}