5个回答
展开全部
在OnDraw()函数中加入如下代码即可:
CPen pen; //A1
CPen *oldPen; //A2
pen.CreatePen(PS_SOLID, 0,RGB(255,0,0));//B
oldPen=pDC->SelectObject(&pen); //C
pDC->MoveTo(10,10); //D
pDC->LineTo(100,10); //E
pDC->LineTo(100,100); //F
pen.DeleteObject(); //G
pDC->SelectObject(oldPen); //H
A1行声明一个画笔CPen对象;
A2行声明一个画笔对象指针;
B行调用CreatePen()函数创建画笔(红色直线);
C行将创建的画笔选入设备描述表,并用oldPen来保存原来的系统画笔;
D行将画笔移到划线的起始点(10,10);
E行在起始点(10,10)和点(100,10)之间画一条直线;
F行在上一次画直线的终点(100,10)和点(100,100)之间画一条直线;
G行撤销创建的画笔对象;
H行恢复系统设备描述表;
以上就是在OnDraw函数中画直线的一般步骤
CPen pen; //A1
CPen *oldPen; //A2
pen.CreatePen(PS_SOLID, 0,RGB(255,0,0));//B
oldPen=pDC->SelectObject(&pen); //C
pDC->MoveTo(10,10); //D
pDC->LineTo(100,10); //E
pDC->LineTo(100,100); //F
pen.DeleteObject(); //G
pDC->SelectObject(oldPen); //H
A1行声明一个画笔CPen对象;
A2行声明一个画笔对象指针;
B行调用CreatePen()函数创建画笔(红色直线);
C行将创建的画笔选入设备描述表,并用oldPen来保存原来的系统画笔;
D行将画笔移到划线的起始点(10,10);
E行在起始点(10,10)和点(100,10)之间画一条直线;
F行在上一次画直线的终点(100,10)和点(100,100)之间画一条直线;
G行撤销创建的画笔对象;
H行恢复系统设备描述表;
以上就是在OnDraw函数中画直线的一般步骤
东莞大凡
2024-08-07 广告
2024-08-07 广告
在东莞市大凡光学科技有限公司,我们利用Halcon软件处理机器视觉项目时,会用到自定义标定板以满足特定需求。Halcon支持用户根据实际应用场景自定义标定板形状与标记点。这不仅可以灵活应对不同工作环境,还能提高标定精度。通过调整圆点数量、间...
点击进入详情页
本回答由东莞大凡提供
展开全部
先获取设备描述表,GetDC。然后使用MoveTo移动绘制点到线起点,然后使用LineTo就能画到该点的直线了。绘制完成后释放设备描述表ReleaseDC。
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
展开全部
拿掉函数OnDraw(CDC /**pDC*/)里的注释,变成OnDraw( *pDC)
pDC->MoveTo(2,2);
pDC->LineTo(10,10);
pDC->MoveTo(2,2);
pDC->LineTo(10,10);
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
展开全部
CDC *pDC=GetWindowDC();//或者不要这句,拿掉函数OnDraw(CDC /**pDC*/)里的注释,变成OnDraw( *pDC)
pDC->MoveTo(1,1);
pDC->LineTo(10,10);
pDC->MoveTo(1,1);
pDC->LineTo(10,10);
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
展开全部
void CMyView::OnDraw(CDC* pDC)
{
CMyDoc* pDoc = GetDocument();
ASSERT_VALID(pDoc);
// TODO: add draw code for native data here
pDC->MoveTo(11,11);
pDC->LineTo(100,100);
}
{
CMyDoc* pDoc = GetDocument();
ASSERT_VALID(pDoc);
// TODO: add draw code for native data here
pDC->MoveTo(11,11);
pDC->LineTo(100,100);
}
参考资料: 孙鑫 VC++深入详解
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询
广告 您可能关注的内容 |