您的位置:首页 > 其它

mfc静态文本控件里实现画图

2017-04-24 13:38 232 查看
有时候,我们需要自绘一些图形,这时候就可以使用静态文本控件来实现绘图功能。



具体实现效果如上,
要实现以上功能,首先我们需要获取到控件窗口的句柄,并且设置绘制的范围
然后在实现画X,Y轴,刻度标尺等功能。
具体代码如下

void CMFCApplication5Dlg::OnBnClickedButton1()
{

// TODO:  在此添加控件通知处理程序代码

CWnd *pwnd = GetDlgItem(IDC_STATIC1);
CDC *pdc = pwnd->GetDC();
pwnd->Invalidate();
pwnd->UpdateWindow();

pdc->Rectangle(0, 0, 320, 320);

CPen *ppenRed = new CPen;

ppenRed->CreatePen(PS_SOLID, 2, RGB(255, 0, 0));
CGdiObject *pOldpen = pdc->SelectObject(ppenRed);
pdc->MoveTo(20, 20);
pdc->LineTo(20, 300);
pdc->LineTo(300, 300);

CString str;
str.Format(_T("0"));
pdc->SetTextColor(RGB(0 ,255, 0));
pdc->TextOutW(20, 303, str);
str.Format(_T("50"));
pdc->SetTextColor(RGB(0, 255, 0));
pdc->TextOutW(70, 303, str);
str.Format(_T("100"));
pdc->SetTextColor(RGB(0, 255, 0));
pdc->TextOutW(120, 303, str);<
4000
/span>
str.Format(_T("150"));
pdc->SetTextColor(RGB(0, 255, 0));
pdc->TextOutW(170, 303, str);
str.Format(_T("200"));
pdc->SetTextColor(RGB(0, 255, 0));
pdc->TextOutW(220, 303, str);
str.Format(_T("250"));
pdc->SetTextColor(RGB(0, 255, 0));
pdc->TextOutW(270, 303, str);

for (int i = 10; i < 300; i += 5){
if ((i & 1) == 0){
pdc->MoveTo(i + 10, 300);
pdc->LineTo(i + 10, 303);
}
else{
pdc->MoveTo(i + 10, 300);
pdc->LineTo(i + 10, 302);
}
}

}
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: