多显示器环境中的鼠标换行
Mouse Wrapping in Multi-Monitor Environments
我对此做了相当多的研究。有一些程序,如Mousinity,允许"鼠标包装"。如果您通过另一个术语知道它,那就是鼠标指针离开屏幕的一侧并出现在屏幕的另一侧时。
但是,所有这样做的程序都未能在其功能列表中包含一个关键元素:多显示器设置。我厌倦了下载一个完全陌生的软件,只是让它无法与我的设置一起使用。
这个问题的下落和肮脏是这样的:
有没有办法通过某种 Windows 的 API 调用来控制鼠标指针的行为?编辑:更具体地说,API如何处理多个监视器?坐标平面的原点在哪里?
虽然我知道它会复杂得多,但这是我尝试做的伪代码:
if (mouse_position == side_of_screen_of_monitor1 && Mouse_is_being_moved off screen)
{
mouse_position == opposite_side_of_screen_of_monitor2
}
原点是主显示器的左上角。如果将显示器放置在主显示器的左侧,则该显示器上的 x 坐标将为负数。如果监视器高于或部分高于主监视器,则该区域的 y 坐标将为负。
- http://msdn.microsoft.com/en-us/library/windows/desktop/dd145136(v=vs.85).aspx
GetSystemMetrics 还具有仅引用多监视器系统的常量。SM_XVIRTUALSCREEN和SM_YVIRTUALSCREEN识别虚拟屏幕的左上角,SM_CXVIRTUALSCREEN和SM_CYVIRTUALSCREEN是虚拟屏幕的垂直和水平测量
值
欲了解更多信息,请参阅此处:
- http://msdn.microsoft.com/en-us/library/windows/desktop/dd162729(v=vs.85).aspx
对于您的任务,我认为您可能只需要考虑虚拟屏幕坐标。
相关文章:
- 使用一个考虑到std::map中键值的滚动或换行的键
- 如何防止clang格式在流运算符调用之间添加换行符<<
- C/C++ - 查询平台相关的换行符(用于内存映射文件)
- 在 Stream C++ 文本之前有一个额外的换行符
- 流:CSV 文件中的换行符
- 将缓冲区复制到剪贴板 [换行错误]
- 如何在三元条件运算符中添加换行符和连接? :在 C++ 中
- Clang-格式:在多行语句之后的换行符上打开大括号
- 如何正确转发/换行static_cast?
- 在输出流中插入换行符
- 防止控制台在通道字符(在 c++ 中)中输入空格(即空格、制表符和换行符)
- QProcess::readAllStandardOutput() 和换行符
- 如果有换行符,clang 格式不会附加大括号
- 创建一个简单的前向迭代器,该迭代器在循环缓冲区的"end"处自动换行
- C++在标点符号后将字符串换行
- 提取后返回换行符的C++istream.get()
- 如何在出现换行符之前将多个整数作为输入?
- 正则表达式 获取两个换行符之间的文本
- 包含换行符分隔的单词的文件和C++中这些单词的字符串向量的大小是否相同?
- 多显示器环境中的鼠标换行