调整窗口大小c#

本文关键字:窗口大小 调整 | 更新日期: 2023-09-27 18:13:33

是否可以从另一个应用程序中调整正在运行的应用程序的窗口大小?我希望当我正在构建的应用程序启动时,另一个应用程序(比如itunes)的宽度被缩小到它的2/3,这样剩下的1/3就被我的应用程序占用了。这两个应用程序应该一起运行,并且用户可以访问。

调整窗口大小c#

您可以使用SetWindowPos来调整另一个进程的窗口大小。

    [DllImport("user32.dll")]
    private static extern bool SetWindowPos(IntPtr hWnd, IntPtr hWndInsertAfter, 
        int x, int y, int width, int height, uint uFlags);
    private const uint SHOWWINDOW = 0x0040;
    private void resizeItunes()
    {
        System.Diagnostics.Process[] itunesProcesses = 
            System.Diagnostics.Process.GetProcessesByName("iTunes");
        if (itunesProcesses.Length > 0)
        {
            SetWindowPos(itunesProcesses[0].MainWindowHandle, this.Handle,
                0, 0, Screen.GetWorkingArea(this).Width * 2 / 3,
                Screen.GetWorkingArea(this).Height, SHOWWINDOW);
        }
    }

您需要获得Windows的句柄,因此使用FindWindow函数http://msdn.microsoft.com/en-us/library/ms633499(VS.85).aspx,然后使用SendMessage将句柄传递给窗口。

您需要SendMessage在http://msdn.microsoft.com/en-us/library/ms644950.aspx或PostMessage在http://msdn.microsoft.com/en-us/library/ms644944(VS.85).aspx与WM_SIZE (0x0005)并指定大小。