我正在使用SFML检测鼠标点击。
用于检测点击发生位置的基本包装器可能如下所示:
sf::Vector2i Block_Until_Mouse_Click(){
static bool pressed=false;
sf::Vector2i position;
while (true){
if (sf::Mouse::isButtonPressed(sf::Mouse::Left))
{
if (!pressed){
position = sf::Mouse::getPosition();
pressed=true;
break;
}
}
else{
pressed = false;
}
}
return position;
}
这允许每次单击鼠标时打印坐标:
while (true){
auto position = Block_Until_Mouse_Click();
std::cout << position.x << " " << position.y << '\n';
}
应用程序是否可以吸收这些鼠标点击,
没有点击有任何影响?
例如,如果我打开了一个绘图程序,并且将这个“鼠标点击吸收”程序最小化,是否可以在 Canvas 上单击而无法绘制任何内容,但仍然保留“鼠标点击吸收”程序记录的坐标单击“吸收”程序?
我不确定这是否需要更改操作系统、更改设备/驱动程序,或者是否可以通过代码来实现。是否有提供此类功能的常用软件实现?
最佳答案
Is it possible for the application to absorb these mouse clicks, without the click having any affect?
对于 SFML,不会。也许使用操作系统功能,具体取决于操作系统。
在 OS X 上,有一个名为 Grab 的屏幕捕获程序可以执行此操作。如何? Apple 尚未发布软件源代码(据我所知),所以我无法确定。
我对 Windows 和 Linux 不太熟悉,无法回答这个问题。
关于c++ - 应用程序可以吸收鼠标点击(即使它没有聚焦)吗?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/35776941/