分享

静态文本控件制图

 昵称8733466 2012-02-08

引用:

新建一个dialog工程,在对话框中加如两个控件,一个是静态文本控件,ID改为IDC_WENBEN,一个是按纽控件ID默认,填加它的单击事件,代码如下。

void CWenBenHuaTuDlg::OnButton1() 
{
    // TODO: Add your control notification handler code here
    CPaintDC dc(this);

    CWnd* pWnd=GetDlgItem(IDC_WENBEN);

    CDC* pDC=pWnd->GetDC();
    pWnd->Invalidate();
    pWnd->UpdateWindow();

    pDC->Rectangle(0,0,300,300);


    //创建画笔对象**************画X和Y轴
    CPen* pPenRed=new CPen;
    pPenRed->CreatePen(PS_SOLID,1,RGB(255,0,0));

    CGdiObject* pOldPen=pDC->SelectObject(pPenRed);

    pDC->MoveTo(10,10);
    pDC->LineTo(10,280);
    pDC->LineTo(280,280);


    //创造画笔对象*****************画X轴和Y轴箭头
    CPen* pPenBlue=new CPen;
    pPenBlue->CreatePen(PS_SOLID,1,RGB(0,0,255));

    pDC->SelectObject(pPenBlue);

    pDC->MoveTo(5,15);
    pDC->LineTo(10,10);
    pDC->LineTo(15,15);

    pDC->MoveTo(275,275);
    pDC->LineTo(280,280);
    pDC->LineTo(275,285);

    //写X轴刻值
    CString str;
    str.Format("0");
    pDC->SetTextColor(RGB(0,255,0));
    pDC->TextOut(10,283,str);
    str.Format("50");
    pDC->TextOut(60,283,str);
    str.Format("100");
    pDC->TextOut(110,283,str);
    str.Format("150");
    pDC->TextOut(160,283,str);
    str.Format("200");
    pDC->TextOut(210,283,str);
    str.Format("250");
    pDC->TextOut(260,283,str);


    //写X轴刻度线
    for(int  i=0;i<256;i+=5)
    {
        if((i&1)==0)
        {//10的倍数
            pDC->MoveTo(i+10,280);
            pDC->LineTo(i+10,284);
        }
        else
        {
            pDC->MoveTo(i+10,280);
            pDC->LineTo(i+10,282);

        }

    }


    pDC->SelectObject(pOldPen);

    //删除新的画笔
    delete pPenRed;
    delete pPenBlue;


}

    本站是提供个人知识管理的网络存储空间,所有内容均由用户发布,不代表本站观点。请注意甄别内容中的联系方式、诱导购买等信息,谨防诈骗。如发现有害或侵权内容,请点击一键举报。
    转藏 分享 献花(0

    0条评论

    发表

    请遵守用户 评论公约

    类似文章 更多