C++ c++;鼠标悬停事件
好的,如果对象不移动,创建鼠标悬停事件非常容易。 但问题是物体每50毫秒移动一次。 它不是一个字符串行,所以我可以创建一个脚本,它是一个圆。 我以前使用getcursorpos()。然后得到对象x和y。 另一个问题是这个C++ c++;鼠标悬停事件,c++,visual-c++,position,onmouseover,C++,Visual C++,Position,Onmouseover,好的,如果对象不移动,创建鼠标悬停事件非常容易。 但问题是物体每50毫秒移动一次。 它不是一个字符串行,所以我可以创建一个脚本,它是一个圆。 我以前使用getcursorpos()。然后得到对象x和y。 另一个问题是这个 p X--------------------- y | | | | cursor | | | 上面写着p,这是x和y的位置。 如果光标位于光标的中间,光标在哪里,并将其与X和Y进行比较。 此外,该对象不断移动,因此更难跟踪。 有
p X---------------------
y
|
|
|
| cursor
|
|
|
上面写着p,这是x和y的位置。
如果光标位于光标的中间,光标在哪里,并将其与X和Y进行比较。
此外,该对象不断移动,因此更难跟踪。
有什么想法吗?
很抱歉,如果我说的话让人困惑,我无法更好地解释它。如果您按照文档进行操作,它会说:
指向点结构的指针,该点结构
接收屏幕的屏幕坐标
光标
但是当你画的时候,你必须提供客户坐标。这就是您需要使用恰当命名的函数将屏幕坐标转换为客户机坐标的问题
但是,我建议不要手动跟踪光标位置,而是使用事件,它已经为您提供了客户端坐标。您使用的是什么框架?您要问的是win32吗?您使用的是纯win32作为GUI?您正在跟踪的对象、自定义绘制的对象或某个子窗口是什么?如果你不告诉我们你在用什么,很难给出有用的建议。真的很抱歉,我忘了缩小它。我用gdi绘制一个eclipse,而不是设置一个计时器来移动屏幕/客户端坐标的eclipse+1。但如果鼠标保持静止且eclipse被移动到鼠标上,则需要添加更多内容。@YeenFei您可以使用WM_MOUSEMOVE跟踪鼠标的最后一个位置,然后使用WM_定时器移动圆圈,您可以添加检查最后一个光标位置是否靠近圆圈。Windows使用基于事件的编程模式,您必须根据系统提供的事件(鼠标移动、鼠标单击、定时器触发、按钮单击等)来设计程序。您的回答没有真正的帮助,您没有提供详细信息。如果您阅读了我所指的文档,您将在底部看到一个指向示例应用程序的链接,该应用程序完成了您所寻找的大部分内容,下面是您错过的链接。