如何利用OnDraw绘制直线

简单说一下过程,谢谢... 简单说一下过程,谢谢 展开
 我来答
保晏然2Q
2008-10-08 · TA获得超过1053个赞
知道小有建树答主
回答量:422
采纳率:0%
帮助的人:522万
展开全部
在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 广告
在东莞市大凡光学科技有限公司,我们利用Halcon软件处理机器视觉项目时,会用到自定义标定板以满足特定需求。Halcon支持用户根据实际应用场景自定义标定板形状与标记点。这不仅可以灵活应对不同工作环境,还能提高标定精度。通过调整圆点数量、间... 点击进入详情页
本回答由东莞大凡提供
beddy1
2008-10-08 · TA获得超过1989个赞
知道大有可为答主
回答量:2271
采纳率:0%
帮助的人:2207万
展开全部
先获取设备描述表,GetDC。然后使用MoveTo移动绘制点到线起点,然后使用LineTo就能画到该点的直线了。绘制完成后释放设备描述表ReleaseDC。
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
sheshizhang
2008-10-08
知道答主
回答量:44
采纳率:0%
帮助的人:23.9万
展开全部
拿掉函数OnDraw(CDC /**pDC*/)里的注释,变成OnDraw( *pDC)
pDC->MoveTo(2,2);
pDC->LineTo(10,10);
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
何处淬吴钩
2008-10-08 · TA获得超过5045个赞
知道大有可为答主
回答量:2947
采纳率:50%
帮助的人:2412万
展开全部
CDC *pDC=GetWindowDC();//或者不要这句,拿掉函数OnDraw(CDC /**pDC*/)里的注释,变成OnDraw( *pDC)
pDC->MoveTo(1,1);
pDC->LineTo(10,10);
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
帐号已注销
2008-10-08 · TA获得超过152个赞
知道小有建树答主
回答量:214
采纳率:0%
帮助的人:0
展开全部
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);
}

参考资料: 孙鑫 VC++深入详解

已赞过 已踩过<
你对这个回答的评价是?
评论 收起
收起 更多回答(3)
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

下载百度知道APP,抢鲜体验
使用百度知道APP,立即抢鲜体验。你的手机镜头里或许有别人想知道的答案。
扫描二维码下载
×

类别

我们会通过消息、邮箱等方式尽快将举报结果通知您。

说明

0/200

提交
取消

辅 助

模 式