新手问题~~很菜的~~大家指点下啊

taylorwc 2003-09-13 11:30:46
BOOL w=FALSE;
void CLineView::OnLButtonDown(UINT nFlags, CPoint point)
{


CView::OnLButtonDown(nFlags, point);
if(w)
{
m_ptFrist.x=point.x;
m_ptFrist.y=point.y;
}
else
{
m_ptSecend.x=point.x;
m_ptSecend.y=point.y;
}
w=!w;

}



void CLineView::OnPaint()
{
CPaintDC dc(this);
dc.MoveTo(m_ptFrist);
dc.LineTo(m_ptSecend);
}
我原来的想法是点下鼠标左键时,随着鼠标的移动会在屏幕上不停的绘制直线,当再次点下左键的时候停止。但是调试时我发现,我点下左键后屏幕没有任何的反应,再在屏幕上另外一点点下后,再点左上角的新建(我建立的是一个单文档),就在我点的这两点间绘制了一条直线,怎么会事的啊~~??
...全文
44 13 打赏 收藏 转发到动态 举报
写回复
用AI写文章
13 条回复
切换为时间正序
请发表友善的回复…
发表回复
bing314 2003-09-14
  • 打赏
  • 举报
回复
还有个问题就是假使我绘制了冲a到b的直线我再点下另外一点c,为什么屏幕上a到b的直线就消失了,只有b到c的直线了呢??我的OnPaint()函数是这样的
void CLineView::OnPaint()
{
CPaintDC dc(this);
dc.MoveTo(m_ptFrist);
dc.LineTo(m_ptSecend);

}

如果想要原来的线段,就得把原来的线段重新画一遍,要不就只有刚画的这条了.
最好是用个数组.
SeainBlue 2003-09-13
  • 打赏
  • 举报
回复
还得重载WM_MOUSEMOVE消息的相应函数
根据移动的当前点和原来鼠标左键的点画线
vcforever 2003-09-13
  • 打赏
  • 举报
回复
你应该在MouseMove事件中处理一下!
taylorwc 2003-09-13
  • 打赏
  • 举报
回复
说详细点好吗?小弟才开始学的~
subtop 2003-09-13
  • 打赏
  • 举报
回复
晕了
taylorwc 2003-09-13
  • 打赏
  • 举报
回复
为什么需要存呢??
bing314 2003-09-13
  • 打赏
  • 举报
回复
原来的坐标存下来了没?
taylorwc 2003-09-13
  • 打赏
  • 举报
回复
还有个问题就是假使我绘制了冲a到b的直线我再点下另外一点c,为什么屏幕上a到b的直线就消失了,只有b到c的直线了呢??我的OnPaint()函数是这样的
void CLineView::OnPaint()
{
CPaintDC dc(this);
dc.MoveTo(m_ptFrist);
dc.LineTo(m_ptSecend);

}
taylorwc 2003-09-13
  • 打赏
  • 举报
回复
谢谢~~
wwjj007 2003-09-13
  • 打赏
  • 举报
回复
这是因为点了左上角的新建图标后会触发Invalidate事件,所以会绘制直线,你只要在你原程序上加入Invalidate( TRUE )即可。
CView::OnLButtonDown(nFlags, point);
if(w)
{
m_ptFrist.x=point.x;
m_ptFrist.y=point.y;
}
else
{
m_ptSecend.x=point.x;
m_ptSecend.y=point.y;
Invalidate( TRUE )
}
w=!w;
taylorwc 2003-09-13
  • 打赏
  • 举报
回复
现在的关键问题是为什么每次要点了左上角的新建图标后才会绘制那条直线呢???
应该是按下鼠标第2下的时候那条直线就被绘制的了啊~~
wanderman 2003-09-13
  • 打赏
  • 举报
回复
并且没有刷新屏幕
taylorwc 2003-09-13
  • 打赏
  • 举报
回复
那怎么做到在鼠标点下第2下后不再对WM_MOUSEMOVE消息做出响应呢??

16,472

社区成员

发帖
与我相关
我的任务
社区描述
VC/MFC相关问题讨论
社区管理员
  • 基础类社区
  • Web++
  • encoderlee
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告

        VC/MFC社区版块或许是CSDN最“古老”的版块了,记忆之中,与CSDN的年龄几乎差不多。随着时间的推移,MFC技术渐渐的偏离了开发主流,若干年之后的今天,当我们面对着微软的这个经典之笔,内心充满着敬意,那些曾经的记忆,可以说代表着二十年前曾经的辉煌……
        向经典致敬,或许是老一代程序员内心里面难以释怀的感受。互联网大行其道的今天,我们期待着MFC技术能够恢复其曾经的辉煌,或许这个期待会永远成为一种“梦想”,或许一切皆有可能……
        我们希望这个版块可以很好的适配Web时代,期待更好的互联网技术能够使得MFC技术框架得以重现活力,……

试试用AI创作助手写篇文章吧