更改外部窗口的最小大小

时间:2014-08-26 09:59:39

标签: c# windows winapi pinvoke

是否可以更改外部窗口的最小大小并调整其大小。假设外部应用程序窗口的大小为(400,400),最小大小为(200,200),我们是否可以将其更改为(100,100)。我有外部窗口的句柄。

我尝试使用MoveWindow功能

 internal static extern bool MoveWindow(IntPtr hWnd, int X, int Y, int nWidth, int nHeight, bool bRepaint);

但是在窗口达到最小尺寸后无法执行此操作。这样做不可能吗?我愿意使用托管的c#代码,如UI自动化甚至是windows apis,pinvoke等。有什么建议吗?

1 个答案:

答案 0 :(得分:0)

可能可以在目标窗口中对某个控件进行子类化,并在控件本身接收消息之前拦截消息,这样您就有机会丢弃WM_SIZE消息({{ 3}})。但是,这会对pinvoke和windows api进行大量工作。

编辑:如果你不介意一些体力劳动,MSDN article可能会容易得多。