【发布时间】:2014-04-22 20:55:23
【问题描述】:
我正在开发一个为其窗口提供捕捉功能的应用程序;将一个窗口拖到足够靠近屏幕边缘或另一个窗口,它就会卡入到位。
Windows 7 offers a built-in snap feature,为了保持一致性,我想尽可能从操作系统中获取“这个窗口需要多关闭才能被捕捉”指标。然而,GetSystemMetrics 似乎没有什么特别有用的东西,而DWM docs 同样没有帮助。
有什么方法可以让我以编程方式获取这个指标?
【问题讨论】:
-
睡前阅读您的帖子。到目前为止,我想到的唯一方法是自己迭代所有窗口,或者在 WM_HITTEST、WM_SIZE 或其他东西上执行此“stackoverflow.com/a/2317324/2538382”。然后用所有的矩形自己计算。
-
@Helix 我不确定我自己该如何进行数学运算,因为我希望这个指标可能因系统而异(?),我只能手动计算它在我自己的电脑上。如果您指的是实际的捕捉行为,那没问题,我已经有了相应的代码。我只是想微调捕捉距离以匹配 Windows 本身的捕捉距离。
-
不是那种可能被记录在案的东西 - 只需选择一个看起来足够接近的值并使用它运行。
-
您至少可以根据一些其他指标(如边框大小或显示 DPI)上的某个系数来确定数字。这样,您就可以让它以某种方式依赖于人们与鼠标移动精度相关联的设置,为可访问性目的而改变等。