120 lines
4.5 KiB
C#
120 lines
4.5 KiB
C#
using System;
|
|
using System.Collections.Generic;
|
|
using System.Linq;
|
|
using System.Text;
|
|
using System.Runtime.InteropServices;
|
|
|
|
namespace Sashulin
|
|
{
|
|
class WinApi
|
|
{
|
|
[DllImport("user32.dll", SetLastError = true)]
|
|
public static extern bool MoveWindow(IntPtr hwnd, int x, int y, int cx, int cy, bool repaint);
|
|
[DllImport("user32.dll")]
|
|
[return: MarshalAs(UnmanagedType.Bool)]
|
|
public static extern bool SetWindowPos(IntPtr hWnd, IntPtr hWndInsertAfter, int X, int Y, int cx, int cy, SetWindowPosFlags uFlags);
|
|
}
|
|
[Flags]
|
|
internal enum SetWindowPosFlags : uint
|
|
{
|
|
/// <summary>
|
|
/// If the calling thread and the thread that owns the window are attached to different input queues,
|
|
/// the system posts the request to the thread that owns the window. This prevents the calling thread from
|
|
/// blocking its execution while other threads process the request.
|
|
/// </summary>
|
|
/// <remarks>SWP_ASYNCWINDOWPOS</remarks>
|
|
AsyncWindowPosition = 0x4000,
|
|
|
|
/// <summary>
|
|
/// Prevents generation of the WM_SYNCPAINT message.
|
|
/// </summary>
|
|
/// <remarks>SWP_DEFERERASE</remarks>
|
|
DeferErase = 0x2000,
|
|
|
|
/// <summary>
|
|
/// Draws a frame (defined in the window's class description) around the window.
|
|
/// </summary>
|
|
/// <remarks>SWP_DRAWFRAME</remarks>
|
|
DrawFrame = 0x0020,
|
|
|
|
/// <summary>
|
|
/// Applies new frame styles set using the SetWindowLong function. Sends a WM_NCCALCSIZE message to
|
|
/// the window, even if the window's size is not being changed. If this flag is not specified, WM_NCCALCSIZE
|
|
/// is sent only when the window's size is being changed.
|
|
/// </summary>
|
|
/// <remarks>SWP_FRAMECHANGED</remarks>
|
|
FrameChanged = 0x0020,
|
|
|
|
/// <summary>
|
|
/// Hides the window.
|
|
/// </summary>
|
|
/// <remarks>SWP_HIDEWINDOW</remarks>
|
|
HideWindow = 0x0080,
|
|
|
|
/// <summary>
|
|
/// Does not activate the window. If this flag is not set, the window is activated and moved to the
|
|
/// top of either the topmost or non-topmost group (depending on the setting of the hWndInsertAfter parameter).
|
|
/// </summary>
|
|
/// <remarks>SWP_NOACTIVATE</remarks>
|
|
NoActivate = 0x0010,
|
|
|
|
/// <summary>
|
|
/// Discards the entire contents of the client area. If this flag is not specified, the valid contents
|
|
/// of the client area are saved and copied back into the client area after the window is sized or repositioned.
|
|
/// </summary>
|
|
/// <remarks>SWP_NOCOPYBITS</remarks>
|
|
NoCopyBits = 0x0100,
|
|
|
|
/// <summary>
|
|
/// Retains the current position (ignores X and Y parameters).
|
|
/// </summary>
|
|
/// <remarks>SWP_NOMOVE</remarks>
|
|
NoMove = 0x0002,
|
|
|
|
/// <summary>
|
|
/// Does not change the owner window's position in the Z order.
|
|
/// </summary>
|
|
/// <remarks>SWP_NOOWNERZORDER</remarks>
|
|
NoOwnerZOrder = 0x0200,
|
|
|
|
/// <summary>
|
|
/// Does not redraw changes. If this flag is set, no repainting of any kind occurs. This applies to
|
|
/// the client area, the nonclient area (including the title bar and scroll bars), and any part of the parent
|
|
/// window uncovered as a result of the window being moved. When this flag is set, the application must
|
|
/// explicitly invalidate or redraw any parts of the window and parent window that need redrawing.
|
|
/// </summary>
|
|
/// <remarks>SWP_NOREDRAW</remarks>
|
|
NoRedraw = 0x0008,
|
|
|
|
/// <summary>
|
|
/// Same as the SWP_NOOWNERZORDER flag.
|
|
/// </summary>
|
|
/// <remarks>SWP_NOREPOSITION</remarks>
|
|
NoReposition = 0x0200,
|
|
|
|
/// <summary>
|
|
/// Prevents the window from receiving the WM_WINDOWPOSCHANGING message.
|
|
/// </summary>
|
|
/// <remarks>SWP_NOSENDCHANGING</remarks>
|
|
NoSendChanging = 0x0400,
|
|
|
|
/// <summary>
|
|
/// Retains the current size (ignores the cx and cy parameters).
|
|
/// </summary>
|
|
/// <remarks>SWP_NOSIZE</remarks>
|
|
NoSize = 0x0001,
|
|
|
|
/// <summary>
|
|
/// Retains the current Z order (ignores the hWndInsertAfter parameter).
|
|
/// </summary>
|
|
/// <remarks>SWP_NOZORDER</remarks>
|
|
NoZOrder = 0x0004,
|
|
|
|
/// <summary>
|
|
/// Displays the window.
|
|
/// </summary>
|
|
/// <remarks>SWP_SHOWWINDOW</remarks>
|
|
ShowWindow = 0x0040,
|
|
}
|
|
}
|