绘制直线???
时间:2011-11-25
来源:互联网
如何实现窗口中点的捕捉,也就是说鼠标在窗口中点下去,产生一个点,然后鼠标弹起来有捕捉一个点,两点连接,产生一条线????还有就是如何实现鼠标点击两个点,之后就产生了一条连接这两个点的直线????
作者: yiqinuliok1234 发布时间: 2011-11-25
WM_LBUTTONDOWN/WM_LBUTTONUP消息响应中记录下起点和终点的左边,然后在OnDraw/OnPaint中MoveTo,LineTo();
作者: VisualEleven 发布时间: 2011-11-25
楼上说的对,听楼上的
作者: q_orange 发布时间: 2011-11-25
我试了一下,先在视图内定义了两个全局变量
CPoint m_point1;
CPoint m_point2;
之后用鼠标左键按下去得点记录起点,左键谈起记录终点,画直线,但是在窗口中并没实现直线的绘制啊???
void Cmfc1View::OnDraw(CDC* pDC)
{
Cmfc1Doc* pDoc = GetDocument();
ASSERT_VALID(pDoc);
if (!pDoc)
return;
pDC->MoveTo(m_point1.x,m_point1.y);
pDC->LineTo(m_point2.x,m_point2.y);
// TODO: 在此处为本机数据添加绘制代码
}
void Cmfc1View::OnLButtonDown(UINT nFlags, CPoint point)
{
m_point1=point;
CView::OnLButtonDown(nFlags, point);
}
void Cmfc1View::OnLButtonUp(UINT nFlags, CPoint point)
{
m_point2=point;
CView::OnLButtonUp(nFlags, point);
}
CPoint m_point1;
CPoint m_point2;
之后用鼠标左键按下去得点记录起点,左键谈起记录终点,画直线,但是在窗口中并没实现直线的绘制啊???
void Cmfc1View::OnDraw(CDC* pDC)
{
Cmfc1Doc* pDoc = GetDocument();
ASSERT_VALID(pDoc);
if (!pDoc)
return;
pDC->MoveTo(m_point1.x,m_point1.y);
pDC->LineTo(m_point2.x,m_point2.y);
// TODO: 在此处为本机数据添加绘制代码
}
void Cmfc1View::OnLButtonDown(UINT nFlags, CPoint point)
{
m_point1=point;
CView::OnLButtonDown(nFlags, point);
}
void Cmfc1View::OnLButtonUp(UINT nFlags, CPoint point)
{
m_point2=point;
CView::OnLButtonUp(nFlags, point);
}
作者: yiqinuliok1234 发布时间: 2011-11-25
忘了用Invalidate()更新视图了;呵呵额
作者: yiqinuliok1234 发布时间: 2011-11-25
相关阅读 更多
热门阅读
-
office 2019专业增强版最新2021版激活秘钥/序列号/激活码推荐 附激活工具
阅读:74
-
如何安装mysql8.0
阅读:31
-
Word快速设置标题样式步骤详解
阅读:28
-
20+道必知必会的Vue面试题(附答案解析)
阅读:37
-
HTML如何制作表单
阅读:22
-
百词斩可以改天数吗?当然可以,4个步骤轻松修改天数!
阅读:31
-
ET文件格式和XLS格式文件之间如何转化?
阅读:24
-
react和vue的区别及优缺点是什么
阅读:121
-
支付宝人脸识别如何关闭?
阅读:21
-
腾讯微云怎么修改照片或视频备份路径?
阅读:28