如何移动/排列所有桌面窗口?(即"显示Windows堆叠"

Sof*_*Kng 2 c# windows winapi

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

例如,在Windows 7中,如果右键单击任务栏,则会出现一个名为"Show windows stacked"和"Show window并排"的选项.

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

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

Jou*_*usi 5

你正在寻找的功能是TileWindows.一些例子:

TileWindows(NULL, MDITILE_HORIZONTAL, NULL, 0, NULL); // "Show windows stacked"
TileWindows(NULL, MDITILE_VERTICAL, NULL, 0, NULL); // "Show windows side-by-side"
Run Code Online (Sandbox Code Playgroud)

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

CascadeWindows(NULL, MDITILE_ZORDER, NULL, 0, NULL); // "Cascade windows"
Run Code Online (Sandbox Code Playgroud)