MFC图形编程实现自绘图形保存到bmp文件

2011-04-16 18:41:34|?次阅读|上传:wustguangh【已有?条评论】发表评论

关键词:C/C++, MFC, 图形/图像|来源:唯设编程网


//输出文本和图形
void CTestSaveBmpView::DrawCurve(CDC *pDC, CRect rcClient)
{
    //页面背景色

    CBrush brushCtl;

    brushCtl.CreateSolidBrush(RGB(255,255,255));

    pDC->Rectangle(rcClient);

    pDC->FillRect(rcClient,&brushCtl) ;

    brushCtl.DeleteObject();

    CPen pen;

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

    CPen *oldPen = pDC->SelectObject(&pen);
    double xMin = 10.00f, xMax = 100.00f;

    double yMin = 10.00f, yMax = 200.00f;

    double dbX1 = (xMax- xMin)/100   xMin;

    double dbY1 = 600/dbX1 ;

    for (int i=1; i<100; i  ) //曲线

    {
        double dbX2 = (xMax- xMin)*i/100   xMin;

        double dbY2 = 600/dbX2 ;

        pDC->MoveTo(int(rcClient.left (dbX1 - xMin)*rcClient.Width()/(xMax- xMin));

        int(rcClient.bottom-(dbY1- yMin)*rcClient.Height()/(yMax- yMin)));

        pDC->LineTo(int(rcClient.left (dbX2 - xMin)*rcClient.Width()/(xMax- xMin));

        int(rcClient.bottom-(dbY2- yMin)*rcClient.Height()/(yMax- yMin)));

        dbX1=dbX2;

        dbY1=dbY2;

    }

    pDC->SelectObject(oldPen);

    pen.DeleteObject();

    oldPen = NULL;

}

//保存的实现

void CTestSaveBmpView::OnRButtonDown(UINT nFlags, CPoint point)
{
    CFileDialog dlg(false,NULL,NULL,OFN_HIDEREADONLY | OFN_OVERWRITEPROMPT,
        "位图文件(*.bmp)|*.bmp|",
        NULL);

    if (dlg.DoModal()!= IDOK) return;

    CString filename = dlg.GetFileName()   ".bmp";

    SaveAsBmp(filename);

    CView::OnRButtonDown(nFlags, point);

}
<12>
发表评论0条 】
网友评论(共?条评论)..
MFC图形编程实现自绘图形保存到bmp文件