Type a page name and press Enter. You'll jump to the page if it exists, or you can create it if it doesn't.
To create a page in a module other than user32, prefix the name with the module name and a period.
TileWindows (user32)
.
C# Signature:
The first version is for use if you want to pass null (IntPtr.Zero) to both lpRect and lpKids.
[DllImport("user32.dll")]
static extern int TileWindows(IntPtr hwndParent, int wHow, IntPtr lpRect, int cKids, IntPtr lpKids);
This one is for non-null lpKids, but null lpRect.
[DllImport("user32.dll")]
static extern int TileWindows(IntPtr hwndParent, int wHow, IntPtr lpRect, int cKids, [MarshalAs(UnmanagedType.LPArray)]IntPtr[] lpKids);
You would need a different version again to pass in a real RECT to lpRect, but I've not tried that one myself.
Here are the constants:
const int MDITILE_VERTICAL = 0;
const int MDITILE_HORIZONTAL = 1;
User-Defined Types:
None.
Notes:
None.
Tips & Tricks:
Please add some!
Sample for VB.NET
Enables you to define a RECT and which windows to 'attack'!
Private Shared Function TileWindows(ByVal hwndParent As System.IntPtr, ByVal wHow As UInteger, ByVal lpRect As RECT, ByVal cKids As UInteger, ByVal lpKids() As System.IntPtr) As UShort
End Function
Private Shared Function GetWindowText(hWnd As IntPtr, lpString As StringBuilder, nMaxCount As Integer) As Integer
End Function
Private Shared Function GetWindowsTitle(hwnd As IntPtr) As String
Dim sb As New StringBuilder(1024)
GetWindowText(hwnd, sb, sb.Capacity)
Return sb.ToString
End Function
Private Sub TileClassMatch(className As String, inRect As RECT, _
partialMatch As Boolean)
Dim hwndLst As New List(Of IntPtr)
'Define the 'ad-hoc' routine as needed, e.g.:
Dim CB As New EnumWindowsProc(Function(hwnd As IntPtr, lParam As IntPtr)
Dim cln As String = GetWindowsTitle(hwnd)
If partialMatch Then
If className.ToLower.Contains(cln.ToLower) Then
hwndLst.Add(hwnd)
End If
Else
If className = cln Then hwndLst.Add(hwnd)
End If
Return True
End Function)
'Call it...
EnumWindows(CB, IntPtr.Zero)
If hwndLst.Count > 0 Then
Dim successCount As UShort = _
TileWindows(IntPtr.Zero, MDI_TILE.SKIPDISABLED, _
inRect, CUInt(hwndLst.Count), hwndLst.ToArray)
MessageBox.Show(String.Concat(successCount.ToString, " windows tiled in ", vbCrLf, _
"rectangle ", inRect.Left.ToString, ", ", inRect.Top.ToString, ", ", inRect.Right.ToString, _
", ", inRect.Bottom.ToString), "Tiling...", MessageBoxButtons.OK, MessageBoxIcon.Information)
End If
End Sub
An IntPtr is a pointer to a memory location (unmanaged) that adapts to the platform it is running on (64-bit, etc.) UNLIKE a standard int/Integer. You should always use this type for unmanaged calls that require it, even though an int will appear to work on your development machine.
1/13/2008 4:00:13 AM - Damon Carr-72.43.165.29
The SetLastError API
1/26/2016 3:27:33 AM - -124.148.167.58
Click to read this page
4/6/2008 7:23:14 AM - anonymous
ByVal is a VB keyword that specifies a variable to be passed as a parameter BY VALUE. In other words, if the function or sub changes the value of the internal variable, it does not change the value of the external variable that was passed to it.
4/25/2007 3:19:55 AM - josep1er@cmich.edu-141.209.229.179
Callback used by EnumWindows
5/10/2014 11:46:55 AM - -24.77.237.43
ByVal is a VB keyword that specifies a variable to be passed as a parameter BY VALUE. In other words, if the function or sub changes the value of the internal variable, it does not change the value of the external variable that was passed to it.
4/25/2007 3:19:55 AM - josep1er@cmich.edu-141.209.229.179
An IntPtr is a pointer to a memory location (unmanaged) that adapts to the platform it is running on (64-bit, etc.) UNLIKE a standard int/Integer. You should always use this type for unmanaged calls that require it, even though an int will appear to work on your development machine.
1/13/2008 4:00:13 AM - Damon Carr-72.43.165.29
TODO - a short description
3/16/2007 7:31:57 AM - anfortas.geo@yahoo.com-216.204.61.86
Click to read this page
4/6/2008 7:23:14 AM - anonymous
The SetLastError API
1/26/2016 3:27:33 AM - -124.148.167.58
An IntPtr is a pointer to a memory location (unmanaged) that adapts to the platform it is running on (64-bit, etc.) UNLIKE a standard int/Integer. You should always use this type for unmanaged calls that require it, even though an int will appear to work on your development machine.
1/13/2008 4:00:13 AM - Damon Carr-72.43.165.29
The CascadeWindows API
5/18/2017 1:36:52 AM - anonymous
Please edit this page!
Do you have...
helpful tips or sample code to share for using this API in managed code?
corrections to the existing content?
variations of the signature you want to share?
additional languages you want to include?
Select "Edit This Page" on the right hand toolbar and edit it! Or add new pages containing supporting types needed for this API (structures, delegates, and more).