如何使用某个组合键+鼠标移动来调整窗口大小? (如 Linux 中的 Alt+F8)不单击并拖动

Posted

技术标签:

【中文标题】如何使用某个组合键+鼠标移动来调整窗口大小? (如 Linux 中的 Alt+F8)不单击并拖动【英文标题】:How to resize a window with a certain key-combo + mouse move? (like Alt+F8 in Linux) Not click and drag 【发布时间】:2013-01-30 03:20:44 【问题描述】:

在 C# winform 应用程序中,我正在尝试实现一些 Linux 窗口管理器功能。 我已经做了很多事情,但是现在,我正在尝试调整大小的部分,在窗口中按下某个组合,然后向右/向左移动鼠标,窗口的宽度会增加向右/向左,沿对角线移动,窗口将在两个方向上增加。

现在我已经知道如何注册热键、获取/设置鼠标光标位置、移动窗口等。全部在 winapi 中。

我似乎无法得到那么多,我怎样才能在一个方向上增加窗口的宽度?如果我通常增加它,它将跨越两个方向。我想了想,我认为:窗口会在两个方向上增加,但是如果我们只想向右增加它的宽度,我们会一直在它的起点重新定位/移动它,以便左侧它将保持固定,正确的将跨越。

什么是正确且简单的方法?我猜对了吗?

请注意,我不只是希望它只在我的表单中工作,而是在任何窗口上工作。

任何 C++/C#/Winapi 代码都会有所帮助。

任何想法/想法也会很棒。

非常感谢。

【问题讨论】:

我不知道 Alt+F8 是做什么的,只是捕获窗体的鼠标移动,然后检查键移状态。要调整大小,您只需指定表单的 Left、Top、Bottom、Right、Width、Height 或 Location 属性,具体取决于您的需要。您不需要调用任何 WinAPI 函数。 我不想在我的表单上使用它,我希望它可以在其他窗口上工作,例如打开的文件夹、calc、firefox、mediaplayer 等。 您说的是“winform 应用程序”。你需要换个问题。无论如何,技术都是一样的。 【参考方案1】:

任何 Windows 窗口:

Alt+Space - 调出标准 Windows 菜单 S - 选择大小 箭头键(或鼠标) - 调整窗口大小 Enter - 提交操作

【讨论】:

我知道这件事。但它真的很慢,而且我不需要用箭头键或其他什么来调整它的大小,我需要使用鼠标移动。 很公平。仅供参考,在您第一次按箭头键后,可以使用鼠标完成调整大小操作。 好的,更快,但仍然没有那么快。但这意味着我认为可以通过编程方式访问此属性,也许有一种方法可以欺骗它,使其首先随鼠标移动......

以上是关于如何使用某个组合键+鼠标移动来调整窗口大小? (如 Linux 中的 Alt+F8)不单击并拖动的主要内容,如果未能解决你的问题,请参考以下文章

VC中CDialogBox,停靠时,如何用鼠标拖动边框来改变大小

Windows 中 Alt+Space 的 AHK 快捷键

当鼠标悬停在边框上时,如何完全禁用调整窗口大小,包括调整大小图标?

调整窗口大小后无法正确检索鼠标坐标

调整窗口大小时如何使用鼠标单击获取图像坐标?

创建特定窗口后如何调整其大小?