MFC 简单绘制

// 画线
void CPcnhDlg::DrawLine( CDC* pDC,CPoint sPoint, CPoint toPoint, int width, COLORREF color)
{

CPen pen(PS_SOLID,width,color);    //定义画笔


pDC->SelectObject(&pen);
pDC->MoveTo(sPoint);
pDC->LineTo(toPoint);

pen.DeleteObject();
}


// 画点
void CPcnhDlg::DrawPoint(CPoint pt, int size, COLORREF color)
{
CDC* pDC = GetClientDC();

CPen *pen=new CPen(PS_SOLID,0,color);
pDC->SelectObject(pen);
pDC->Ellipse(pt.x-size,pt.y-size,pt.x+size,pt.y+size);

pen->DeleteObject();
delete pen;
}


// 画文字
void CPcnhDlg::DrawText(CPoint pt, int size, int Angle, COLORREF color, CString strTxt)
{

CDC* pDC = GetClientDC();

CFont font;
    VERIFY(font.CreateFont(
size,                        // nHeight
0,                         // nWidth
Angle,                         // nEscapement,设置文字的显示角度,注意单位为0.1度
-90,                         //
FW_NORMAL,                 // nWeight
FALSE,                     // bItalic
FALSE,                     // bUnderline
0,                         // cStrikeOut
ANSI_CHARSET,              // nCharSet
OUT_DEFAULT_PRECIS,        // nOutPrecision
CLIP_DEFAULT_PRECIS,       // nClipPrecision
DEFAULT_QUALITY,           // nQuality
DEFAULT_PITCH | FF_SWISS,  // nPitchAndFamily
"Arial") );  // lpszFacename

// Do something with the font just created...
CFont* def_font = pDC->SelectObject(&font);
// pDC->SetBkMode(TRANSPARENT); // 透明
pDC->SetTextColor(color);
pDC->SetTextAlign(TA_CENTER);  

pDC->TextOut(pt.x, pt.y, strTxt);
pDC->SelectObject(def_font);

font.DeleteObject();
}
阅读更多
个人分类: 算法
想对作者说点什么? 我来说一句

没有更多推荐了,返回首页

关闭
关闭
关闭