确定窗口捕捉距离

3
我正在开发一个应用程序,为其窗口提供吸附功能;将一个窗口拖动到屏幕边缘或另一个窗口附近,它就会自动吸附在那里。
Windows 7 提供了内置的吸附功能,为了保持一致性,我希望尽可能从操作系统中获取“窗口需要靠近多近才能吸附”的度量。然而,GetSystemMetrics 似乎没有特别有用的东西,DWM文档 同样没有提供帮助。
有没有办法通过编程来获取这个度量?

睡觉前看了你的帖子。到目前为止,我想到的唯一方法是自己迭代所有窗口或在WM_HITTEST、WM_SIZE或其他事件上执行"http://stackoverflow.com/a/2317324/2538382"。然后用所有矩形自己计算。 - FrogTheFrog
@Helix 我不确定我该如何自己进行数学计算,因为我预计这个度量可能会因系统而异(?),而且我只能在自己的电脑上手动计算它。如果你指的是实际的捕捉行为,那没问题,我已经有了代码。我只是想微调捕捉距离,以匹配 Windows 本身的捕捉距离。 - cf-
这不是可能会被记录的事情 - 只需选择一个看起来足够接近的值并运行即可。 - Jonathan Potter
你可以至少通过一些系数基于其他指标(如边框大小或显示器 DPI)来确定该数字。这样,您可以使其在某种程度上依赖于与鼠标移动精度相关的设置,以及为了实现可访问性等目的进行的更改。 - Yirkha
1个回答

1
实际上,没有这样的度量标准,因为您要查找的“捕捉距离”实际上始终为0。
当您在Windows 7(可能也适用于Windows 8,不确定)上拖动顶层窗口时,实际上只要鼠标指针触碰到屏幕边缘,它就会自动捕捉。 想要的“捕捉系统”会在拖动的窗口的任意边缘接近另一个窗口或屏幕边缘时立即将其捕捉到位,其中x是您要查找的距离(通常为10像素左右)。

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接