使用send / postmessage User32.dll最大化表单

时间:2014-09-04 12:24:53

标签: c# sendmessage postmessage

我有Windows应用程序,我需要最大化窗口/窗体。

我试过

    public const int WM_NCLBUTTONDOWN = 0xA1;
    public const int HT_CAPTION = 0x2;
    SendMessage(Handle, WM_NCLBUTTONDOWN, HT_CAPTION, 0);

and 

    int WM_SIZE = 0x0005;
    int SIZE_MAXIMIZED = 2;
    SendMessage(Main, WM_SIZE, SIZE_MAXIMIZED, 0);

没有什么不起作用。

可以告诉我什么是正确的wat吗?

2 个答案:

答案 0 :(得分:2)

如文档中所述,WM_SIZE是一个通知,在窗口大小发生变化时发送到窗口。将其发送到窗口不会改变窗口的大小。您的发送WM_NCLBUTTONDOWN似乎是企图伪造标题栏中的点击。这是行不通的,至少不是你做的那样。

使用ShowWindowAsync传递您希望最大化的窗口句柄,并SW_MAXIMIZE

答案 1 :(得分:0)

最大化是一个SYSCOMMAND,请改为尝试:

        int WM_SYSCOMMAND = 0x112;
        int SC_MAXIMIZE = 0xf030;
        SendMessage(handle, WM_SYSCOMMAND, SC_MAXIMIZE, IntPtr.Zero);