TileWindows
C# Signature:
[DllImport("user32.dll")]
static extern int TileWindows(IntPtr hwndParent, int wHow, IntPtr lpRect, int cKids, IntPtr lpKids);
C# Signature:
[DllImport("user32.dll")]
static extern int TileWindows(IntPtr hwndParent, int wHow, IntPtr lpRect, int cKids, [MarshalAs(UnmanagedType.LPArray)]IntPtr[] lpKids);
Tips & Tricks:
Private Shared Function EnumWindows(
Tips & Tricks:
End Function
Tips & Tricks:
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
Tips & Tricks:
Private Shared Function GetWindowText(hWnd As IntPtr, lpString As StringBuilder, nMaxCount As Integer) As Integer
End Function
Tips & Tricks:
Dim sb As New StringBuilder(1024)
GetWindowText(hwnd, sb, sb.Capacity)
Return sb.ToString
End Function
Tips & Tricks:
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
Última actualización