The Windows API provides an handy function that lets you cascade all the child windows of another window with one single call. The effect of this function is similar to the Cascade Windows command in most MDI apps, except the parent window doesn’t have to be an MDI window.
This is the (incorrect) Declare that the API Viewer utility provides:
Private Declare Function CascadeWindows Lib "user32" Alias "CascadeWindows" _ (ByVal hwndParent As Long, ByVal wHow As Long, ByVal lpRect As RECT, _ ByVal cKids As Long, lpkids As Long) As Integer
You see that this Declare is incorrect, because it declares the lpRect As RECT argument using ByVal, which is invalid in VB. Here’s the correct Declare:
Private Declare Function CascadeWindows Lib "user32" Alias "CascadeWindows" _ (ByVal hwndParent As Long, ByVal wHow As Long, ByVal lpRect As Long, _ ByVal cKids As Long, lpkids As Long) As Integer
You can cascade all the top-level windows in your system by passing all zero arguments:
CascadeWindows 0, 0, 0, 0, 0
Or you can cascade only the child windows of a given window by passing its handle as the first argument.