BOOL SetWindowPos( const CWnd* pWndInsertAfter, int x, int y, int cx, int cy, UINT nFlags );
返回值:
如果函数调用成功,返回非零值;否则 返回 0
参数:
pWndInsertAfter
标示Z方向上在本CWnd对象之前的CWnd 对象。本参数可以是指向CWnd对象的指针,或以下值:
wndBottom 把本窗口放在Z方向的最底端。如果这个CWnd对象是最上方窗口,这个窗口就失去其最上方的状态
系统会把此窗口放在所有其他窗口的下面
wndTop 把本窗口放在Z方向上的最上方
wndTopMost 把窗口放在所有其他非置顶窗口的上面。即使窗口无效,依然会维持置顶状态
wndNoTopMost重新把窗口放在所以非置顶窗口的最前面(即,放在所有置顶窗口的后面)。
如果已经存在一个nontopmost窗口,则该标志无效
x 指定窗口左边的新位置
y 指定窗口上侧的新位置
cx 指定窗口新的宽度
cy 指定窗口新的高度
nFlags 指定尺寸和位置选项。该参数可以是下列参数的组合
SWP_DRAWFRAME 绕窗口画框
SWP_FRAMECHANGED 发送 WM_NCCALCSIZE 消息到窗口,即使窗口尺寸没有改变。如果未指定该参 数, WM_NCCALCSIZE 只会在窗口尺寸改变时被发送
SWP_HIDEWINDOW 隐藏窗口
SWP_NOACTIVATE 不激活窗口。如果该参数未被指定,窗口被激活,且按照 pWndInsertAfter 参数显示
SWP_NOCOPYBITS 丢弃客户区的所有内容. 如果未指定该标志,客户区有效的内容会被保存,在窗口尺寸改变或位置改变后重绘
SWP_NOMOVE 保留当前位置(x,y的值)
SWP_NOOWNERZORDER 不改变宿主窗口在Z方向上的位置
SWP_NOREDRAW 不重绘改变的内容
SWP_NOREPOSITION 同 SWP_NOOWNERZORDER.
SWP_NOSENDCHANGING 阻止窗口接受WM_WINDOWPOSCHANGING 消息
SWP_NOSIZE 保留当前尺寸(忽略cx、cy 参数).
SWP_NOZORDER 保留当前顺序(忽略 pWndInsertAfter).
SWP_SHOWWINDOW 显示窗口
备注
如果设置pWndInsertAfter &wndTopMost ,且SWP_NOZORDER 不被设置,可以使窗口放在所有置顶窗口的最上方
要创建置顶窗口,除了调用SetWindowPos 设置pWndInsertAfter &wndTopMost,也可在创建窗体时设置WS_EX_TOPMOST 样式