2015.4.21 SetWindowPos函数用法

时间:2021-11-09 18:12:57

定义:[DllImport("user32.dll")]

public static extern bool SetWindowPos(IntPtr hWnd, int hWndlnsertAfter, int X, int Y, int cx, int cy, uint Flags);

调用:API.SetWindowPos(mainhwnd, -1, 0, 0, 0, 0, 0x001 | 0x002 | 0x040);

参数:

hWndInsertAfter 窗口叠层位置

HWND_TOPMOST = -1在所用"普通层"之上的"最顶层"

HWND_TOP =0在顶层的"普通层"

HWND_BOTTOM =1在底层的"普通层"

HWND_NOTOPMOST= -2 在所有非"普通层"之上的"普通层"

uFlags 附加参数

SWP_NOSIZE =0x0001窗口大小不变(忽略CX,CY参数)

SWP_NOMOVE =0x0002不可移动窗口(忽略X,Y参数)

SWP_NOZORDER =0x0004不改变叠层顺序(忽略hWndInsertAfter参数)
SWP_NOREDRAW =0x0008不重画窗口

SWP_NOACTIVATE =0x0010不激活窗口

SWP_DRAWFRAME =0x0020窗口带边框,发送边框改变消息

SWP_SHOWWINDOW =0x0040显示窗口

SWP_HIDEWINDOW =0x0080窗口隐藏

SWP_NOCOPYBITS =0x0100不保留显示缓存的拷贝

SWP_NOOWNERZORDER =0x0200不改变父窗口叠层顺序

SWP_NOSENDCHANGING =0x0400不接受窗口位置改变的消息

注意:如果要使用上述多个uFlags参数, 只要将几个参数相加的和赋给uFlags即可.

2015.4.21 SetWindowPos函数用法