SetWindowPlacement (user32)
Last changed: -73.47.171.17

.
Summary

C# Signature:

/// <summary>
/// Sets the show state and the restored, minimized, and maximized positions of the specified window.
/// </summary>
/// <param name="hWnd">
/// A handle to the window.
/// </param>
/// <param name="lpwndpl">
/// A pointer to a WINDOWPLACEMENT structure that specifies the new show state and window positions.
/// <para>
/// Before calling SetWindowPlacement, set the length member of the WINDOWPLACEMENT structure to sizeof(WINDOWPLACEMENT). SetWindowPlacement fails if the length member is not set correctly.
/// </para>
/// </param>
/// <returns>
/// If the function succeeds, the return value is nonzero.
/// <para>
/// If the function fails, the return value is zero. To get extended error information, call GetLastError.
/// </para>
/// </returns>
[DllImport("user32.dll", SetLastError = true)]
[return: MarshalAs(UnmanagedType.Bool)]
static extern bool SetWindowPlacement(IntPtr hWnd,
   [In] ref WINDOWPLACEMENT lpwndpl);

VB Signature:

<DllImport("user32.dll")> _
Public Shared Function SetWindowPlacement( _
     ByVal hWnd As IntPtr, _
     ByRef lpwndpl As WINDOWPLACEMENT) As Boolean
End Function

User-Defined Types:

WINDOWPLACEMENT.

Notes:

None.

Tips & Tricks:

Please add some!

Sample Code:

//Import the DLL
[DllImport("user32.dll")]
static extern bool SetWindowPlacement(IntPtr hWnd,
[In] ref WINDOWPLACEMENT lpwndpl);

  //Definition for Window Placement Structure
  [StructLayout(LayoutKind.Sequential)]        
  private struct WINDOWPLACEMENT
       {
    public int length;
    public int flags;
    public int showCmd;
    public System.Drawing.Point ptMinPosition;
    public System.Drawing.Point ptMaxPosition;
    public System.Drawing.Rectangle rcNormalPosition;
    }


   //Definitions For Different Window Placement Constants
       const UInt32 SW_HIDE =     0;
       const UInt32 SW_SHOWNORMAL =       1;
       const UInt32 SW_NORMAL =       1;
       const UInt32 SW_SHOWMINIMIZED =    2;
       const UInt32 SW_SHOWMAXIMIZED =    3;
       const UInt32 SW_MAXIMIZE =     3;
       const UInt32 SW_SHOWNOACTIVATE =   4;
       const UInt32 SW_SHOW =     5;
       const UInt32 SW_MINIMIZE =     6;
       const UInt32 SW_SHOWMINNOACTIVE =  7;
       const UInt32 SW_SHOWNA =       8;
       const UInt32 SW_RESTORE =      9;

WINDOWPLACEMENT param = new WINDOWPLACEMENT();

param.length = Marshal.SizeOf(typeof(WINDOWPLACEMENT));

param.showCmd = 1; //SW_SHOWNORMAL

SetWindowPlacement(this.Handle, ref param);

Alternative Managed API:

The ManagedWindowsApi project (http://mwinapi.sourceforge.net) provides a

class ManagedWinapi.SystemWindow that has a Position property.

Documentation