【发布时间】:2016-03-03 15:56:44
【问题描述】:
我正在使用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';
}
应用程序是否可以吸收这些鼠标点击,
没有点击有任何影响?
例如,如果我打开了一个绘图程序,并且这个“鼠标点击吸收”程序最小化,是否可以在画布上单击而无法绘制任何东西,但仍然有“鼠标”记录的坐标点击吸收”程序?
我不确定这是否需要更改操作系统、更改设备/驱动程序,或者是否可以通过代码来实现。是否有提供这种功能的常用软件实现?
【问题讨论】:
标签: c++ operating-system mouseevent mouse sfml