Warning: file_get_contents(/data/phpspider/zhask/data//catemap/0/hadoop/6.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
Winapi 如何在代码中垂直调整窗口大小?_Winapi - Fatal编程技术网

Winapi 如何在代码中垂直调整窗口大小?

Winapi 如何在代码中垂直调整窗口大小?,winapi,Winapi,如果我双击窗口的上边框,它将从桌面的顶部到底部垂直调整大小,但保留其宽度 如何在代码中实现它 可能只是通过以下代码: with Screen.MonitorFromWindow(Handle).WorkareaRect do SetBounds(Self.Left, Top, Self.Width, Height); 以下备选方案将添加动画: Hide; with Screen.MonitorFromWindow(Handle).WorkareaRect do SetBounds(Se

如果我双击窗口的上边框,它将从桌面的顶部到底部垂直调整大小,但保留其宽度


如何在代码中实现它

可能只是通过以下代码:

with Screen.MonitorFromWindow(Handle).WorkareaRect do
  SetBounds(Self.Left, Top, Self.Width, Height);
以下备选方案将添加动画:

Hide;
with Screen.MonitorFromWindow(Handle).WorkareaRect do
  SetBounds(Self.Left, Top, Self.Width, Height);
AnimateWindow(Handle, 200, AW_ACTIVATE or AW_VER_POSITIVE);

为了能够恢复到以前的大小,我认为可以使用
SetWindowPlacement
,但我无法让它工作。

我重新标记为winapi。好问题。没有专门的API公开来调用Aero snap功能(请参阅)。它归结为使用适当的值进行调用。不幸的是,这只是近似的效果。当您开始将上边框拖离边缘时,窗口将不会恢复其下边缘@MartynA:你点击了标题栏,而不是顶部边框。光标在您到达边框时会改变其形状,而不是标题栏。是否应该有一种方法发送消息(SendMessage)以这样调整窗口大小?@IInspectable:“光标在您到达边框时会改变其形状”True,但是在我的机器上,在显示垂直大小箭头的同时单击dbl不会起任何作用。您可以尝试发送WinKey+Shift+Up输入,尽管由于WinKey的使用,这并不是很简单。