
那函数要写在OnMouseMove里面。
OnDraw是绘图函数。
CWnd::OnMouseMove
afx_msg void OnMouseMove( UINT
nFlags, CPoint point );
CPoint就是你要的坐标值。然后调用Invalidate或者UpdateWindow来刷新窗口,系统会自动调用OnDraw
CPoint
pt;
::GetCursorPos(&pt);
这样就可以得到当前鼠标的位置了,(ptx,pty)。
要获得鼠标点击时的坐标不用自己获得的,MFC的消息映射函数的参数中有鼠标位置的这个参数的。
1、::GetCursorPos会获取当前鼠标所在的点,参数为POINT结构变量的地址。
2、如下面的例子:
#include <stdioh>
#include <afxh>
void main()
{
POINT point;
::GetCursorPos(&point);
printf("x=%d,y=%d\n",pointx,pointy);
}
::GetCursorPos(&point);将获得的位置放入point变量中,通过pointx和pointy可以得知位置
如果是获取系统全局鼠标可用GetCursorPos获取鼠标坐标。如果精度要求不高,可用一个计时器,不断调用这个函数,获取坐标,并与上一次获取的坐标对比,如果不一样就移动。
或者用钩子,不过会被杀毒软件拦截,慎用
如果仅获取程序内部鼠标坐标,拦截鼠标消息即可
在OnMouseMove函数里设定字符变量str,定义为鼠标的x和y。然后在状态栏输出。CString str; strFormat( "%d,%d ",pointx,pointy); CStatusBar pStatus;pStatus=(CStatusBar)AfxGetApp()->m_pMainWnd ->GetDescendantWindow (ID_VIEW_STATUS_BAR);pStatus->SetPaneText (1,str);
你的意思是在窗体中移动鼠标的时候
在鼠标的位置用一个ToolTip显示鼠标的坐标吗?
是的话就是这样:
首先、拖个ToolTip进来,比如它叫toolTip1
然后、在你窗体的MouseMove事件中,加下面一行
thistoolTip1SetToolTip(this, eX + "\t" + eY);
也就是当你的鼠标在窗体的范围内进行移动的时候,会在你的鼠标位置d出一个ToolTip,其中显示你鼠标的坐标。
就这样~
:)
private void Form1_MouseMove(object sender, MouseEventArgs e)
{
thislabel2Location = new Point(eX + 10, eY);
thislabel2Text = "当前坐标:"+eX + "," + eY;
}
private void Form1_MouseDown(object sender, MouseEventArgs e)
{
if(eButton == MouseButtonsLeft)
{
thislabel2Visible = true;
}//判断是否为左键
}
private void Form1_MouseUp(object sender, MouseEventArgs e)
{
thislabel2Visible = false;
}
MouseMove:当鼠标在窗体移动的触发事件,跟e获取x,y的坐标
MouseDown:当按下鼠标的时候,判断是否为左键,如果true,就把labelvisible=true;设置显示,
MouseUp:当放开(d出)鼠标的时候,就直接设置Label为visible=false;o(∩_∩)o够明白吧。。
dim x,y,color
//声明变量
GetCursorPos x, y
//得到当前鼠标的坐标位置 并保存到变量x,y中
Color=GetPixelColor(x,y)
//得到指定坐标位置的颜色 并保存到变量color中
MessageBox("坐标为:"&x&","&y&" 颜色为:"&color)
//d出窗口 输出坐标和颜色的值
以上就是关于关于C++提取鼠标位置处的坐标的程序全部的内容,包括:关于C++提取鼠标位置处的坐标的程序、vc中如何获取鼠标点击时的坐标、C语言控制台中怎么能获取光标当前的坐标值呢等相关内容解答,如果想了解更多相关内容,可以关注我们,你们的支持是我们更新的动力!
欢迎分享,转载请注明来源:内存溢出
微信扫一扫
支付宝扫一扫
评论列表(0条)