【问题标题】:How can I move/arrange all desktop windows? (i.e. "Show Windows Stacked"如何移动/排列所有桌面窗口? (即“显示 Windows 堆叠”
【发布时间】:2013-04-02 19:49:31
【问题描述】:

是否可以在 C# 中(使用 Win32 API 或其他)以编程方式排列所有打开的应用程序窗口?

例如,在 Windows 7 中,如果您右键单击任务栏,则会有一个名为“显示堆叠的窗口”和“并排显示窗口”的选项。

这正是我试图通过代码复制的内容。

为了进一步解释,我想遍历所有打开的应用程序,显示主窗口,然后将其与所有其他打开的应用程序窗口一起排列在桌面/显示器上。

【问题讨论】:

    标签: c# windows winapi


    【解决方案1】:

    您要查找的函数是TileWindows。一些例子:

    TileWindows(NULL, MDITILE_HORIZONTAL, NULL, 0, NULL); // "Show windows stacked"
    TileWindows(NULL, MDITILE_VERTICAL, NULL, 0, NULL); // "Show windows side-by-side"
    

    如果你想级联窗口,你可以使用CascadeWindows:

    CascadeWindows(NULL, MDITILE_ZORDER, NULL, 0, NULL); // "Cascade windows"
    

    【讨论】:

      【解决方案2】:

      是的,您可以使用 windows API 来完成,看看这个链接,它解释了如何使用一些功能,包括让您枚举所有打开的窗口的功能

      http://www.c-sharpcorner.com/UploadFile/shrijeetnair/win32api12062005005528AM/win32api.aspx

      这里有让你调整窗口大小和移动窗口的功能

      http://msdn.microsoft.com/en-us/library/windows/desktop/ms633534(v=vs.85).aspx

      【讨论】:

        猜你喜欢
        • 2020-10-11
        • 1970-01-01
        • 2015-10-17
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 2013-12-31
        • 1970-01-01
        相关资源
        最近更新 更多