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 樣式