Warning: file_get_contents(/data/phpspider/zhask/data//catemap/6/cplusplus/140.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
C++ 确定窗口捕捉距离_C++_Windows_Winapi - Fatal编程技术网

C++ 确定窗口捕捉距离

C++ 确定窗口捕捉距离,c++,windows,winapi,C++,Windows,Winapi,我正在开发一个为其windows提供快照功能的应用程序;将一个窗口拖得离屏幕边缘或另一个窗口足够近,它就会卡入到位 为了保持一致性,我想在可能的情况下从操作系统中获得“这个窗口需要多近才能被抓拍到”的指标。但是,似乎没有什么特别有用的东西,而且这些工具也同样没有帮助 是否有任何方法可以通过编程获得此指标?实际上没有此类指标,因为您要查找的“捕捉距离”实际上始终为0 当您在Windows 7(可能是Windows 8,对此不确定)上拖动顶级窗口时,它实际上会在鼠标指针到达屏幕边缘时立即捕捉 您需要

我正在开发一个为其windows提供快照功能的应用程序;将一个窗口拖得离屏幕边缘或另一个窗口足够近,它就会卡入到位

为了保持一致性,我想在可能的情况下从操作系统中获得“这个窗口需要多近才能被抓拍到”的指标。但是,似乎没有什么特别有用的东西,而且这些工具也同样没有帮助


是否有任何方法可以通过编程获得此指标?

实际上没有此类指标,因为您要查找的“捕捉距离”实际上始终为0

当您在Windows 7(可能是Windows 8,对此不确定)上拖动顶级窗口时,它实际上会在鼠标指针到达屏幕边缘时立即捕捉


您需要的“捕捉系统”会在拖动的窗口的一个边缘距离另一个窗口的边缘或屏幕边缘的距离小于x时将其捕捉到位,其中x是您要查找的距离(通常为10像素左右)。

睡觉前阅读文章。到目前为止,我认为唯一的方法是自己迭代所有窗口,或者在WM_HITTEST、WM_SIZE或其他东西上执行此操作。然后用所有的矩形自己做数学运算。@Helix我不确定我自己该如何做数学运算,因为我预计这个指标可能会因系统而异(?),我只能在自己的计算机上手动计算。如果您指的是实际的捕捉行为,那没问题,我已经有了相应的代码。我只是想微调捕捉距离,使之与窗口本身的捕捉距离相匹配。这类事情不可能被记录在案——只需选择一个看起来足够接近的值并使用它运行即可。您至少可以根据一些其他指标(如边框大小或显示DPI)的系数来计算数字。通过这种方式,您可以使其在某种程度上依赖于人们与鼠标移动精度相关联的设置、出于可访问性目的而进行的更改等。