📄 subject_24222.htm
字号:
<p>
序号:24222 发表者:uswrs 发表日期:2002-12-11 06:58:06
<br>主题:请教 VC问题
<br>内容:在500*500的图像中,想用 鼠标画一条小短线,<BR>然后在程序中获取这条短线的每一点坐标。<BR><BR>我已经加入了鼠标消息,可以获取一个点的坐标,<BR><BR>但要画一条线,并且屏幕上要显示这条线,同时,线的<BR>坐标存在一个数组中, 具体怎么办?<BR>盼望高手的回答。非常感谢!<BR><BR><BR>
<br><a href="javascript:history.go(-1)">返回上页</a><br><a href=http://www.copathway.com/cndevforum/>访问论坛</a></p>
<hr size=1>
<blockquote><p>
回复者:无非 回复日期:2002-12-11 09:42:42
<br>内容:两个点就能画一条线啊,你要每个点的坐标做甚?
<br>
<a href="javascript:history.go(-1)">返回上页</a><br><a href=http://www.copathway.com/cndevforum/>访问论坛</a></p></blockquote>
<hr size=1>
<blockquote><p>
回复者:uswrs 回复日期:2002-12-11 09:50:26
<br>内容:用两点画直线是可以,但在VC里怎么实现?<BR>如果知道每点的坐标则更好。
<br>
<a href="javascript:history.go(-1)">返回上页</a><br><a href=http://www.copathway.com/cndevforum/>访问论坛</a></p></blockquote>
<hr size=1>
<blockquote><p>
回复者:uswrs 回复日期:2002-12-11 20:42:25
<br>内容:麻烦各位高手了,只须讲一下大概步骤即可。<BR><BR>多谢。
<br>
<a href="javascript:history.go(-1)">返回上页</a><br><a href=http://www.copathway.com/cndevforum/>访问论坛</a></p></blockquote>
<hr size=1>
<blockquote><p>
<font color=red>答案被接受</font><br>回复者:jiangweiwei 回复日期:2002-12-11 21:28:05
<br>内容:首先,你的问法有个问题:两点确定一条直线,用鼠标画图也是基于此原理,在windows画图函数进行画线时也是这样,因此,用鼠标画线只是响应鼠标的两个单击消息(起始点和终点),一般是鼠标左键单击(如果你愿意,也可以响应右键单击消息),在单击第一点时,响应该消息记下第一点坐标,单击第二点时,响应该消息记下第二点坐标,并画直线。一个简单的消息响应函数如下:<BR>int i=0;//初始化<BR>int x1,y1,x2,y2;//用于存储坐标<BR>void CMdlgDlg::OnLButtonDown(UINT nFlags, CPoint point)<BR>{<BR>i++;<BR>if(i=1)<BR>{<BR>x1=point.x;//第一点横坐标<BR>y1=point.y;//第一点纵坐标<BR>}<BR>else if(i=2)<BR>{<BR>x2=point.x;<BR>y2=point.y;<BR>//画线<BR>MoveTo(x1,y1);<BR>LineTo(x2,y2);<BR>i=0;//一定要清零<BR>}<BR> <BR>CDialog::OnLButtonDown(nFlags, point);<BR>}<BR>此外,你还可以通过添加鼠标移动时画橡皮线等操作将程序做得更好
<br>
<a href="javascript:history.go(-1)">返回上页</a><br><a href=http://www.copathway.com/cndevforum/>访问论坛</a></p></blockquote>
<hr size=1>
<blockquote><p>
回复者:uswrs 回复日期:2002-12-12 03:09:39
<br>内容:当我用鼠标在图像上画线,但什么都没画出来,这是怎么回事<<BR><BR><BR>int mx1, my1,mx2, my2;<BR><BR>CPen pen(PS_SOLID,1,RGB(255,0,0));<BR>CImageDoc* pDoc = GetDocument();<BR>CClientDC dc(this); <BR><BR>if(m_DrawCurrent==1) <BR>{<BR>if(PushNumb==0) <BR>{PushNumb++; <BR>mx1=point.x;<BR>my1=::DIBHeight(lpDIB)-point.y; //transfer into image coordinate<BR> SetCapture();<BR>dc.MoveTo(mx1,my1);<BR>}<BR>else if(PushNumb==1) <BR>{<BR>mx2=point.x;<BR>my2=::DIBHeight(lpDIB)-point.y; //transfer into image coordinate<BR><BR>CPen * pOldPen=dc.SelectObject(&pen);<BR><BR><BR>dc.LineTo(mx2,my2);<BR><BR> PushNumb=0;<BR> ReleaseCapture();<BR> }<BR><BR> }<BR><BR><BR><BR>2002-12-12 4:10:16
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -