1

有没有办法(API)以像素为单位获取调整大小角的大小(垂直和水平)?

我指的是窗口每个角落的区域,您可以使用鼠标同时在两个方向(从左到右和从上到下)调整窗口大小。当您将鼠标悬停在窗口的角落上时,您会知道您的鼠标光标在那里,并且鼠标光标是对角线调整光标。

谢谢

编辑:一个例子:将鼠标悬停在一个相当大的窗口的右边缘。从窗口的中间(垂直)开始,沿边缘向上移动鼠标,直到水平调整光标变为对角调整光标。如何通过询问操作系统光标更改时该位置距窗口顶部多远来确定。

4

2 回答 2

2

我建议使用滚动条的大小。使用 SM_CYHSCROLL 和 SM_CXVSCROLL 调用 GetSystemMetrics。也可能 SM_CYSIZEFRAME 和 SM_CXSIZEFRAME 大小可以组合。

但我认为更好的价值是使用状态栏的高度。然而,即使是 Microsoft Windows 似乎也使用了一些固定值,如屏幕截图所示。

在此处输入图像描述

于 2013-07-17T13:51:33.023 回答
1

比较 和 的结果GetClientRectGetWindowRect告诉您非客户(边框)区域沿窗口每个边缘的宽度。

如果您担心它可能不是所有的尺寸都处于活动状态(尤其是在顶部),或者您想区分对角线尺寸区域和边缘尺寸区域,您可以获取在步骤 1 中发现的坐标并将它们传递给SendMessage(WM_NCHITTEST) See其各种返回码的文档。重复发送此消息没有问题——它被设计为每次鼠标移动事件都被调用,因此速度非常快。

于 2013-07-17T13:47:03.537 回答