-
1 # 使用者2443157580448
-
2 # 使用者1430807591406
函式 SetWindowPos 的用法
Declare Function SetWindowPos Lib "user32" Alias "SetWindowPos" (ByVal hwnd As Long, ByVal hWndInsertAfter As Long, ByVal x As Long, ByVal y As Long, ByVal cx As Long, ByVal cy As Long, ByVal wFlags As Long) As Long
這個函式能為視窗指定一個新位置和狀態。它也可改變視窗在內部視窗列表中的位置。
返回值:Long,非零表示成功,零表示失敗
引數說明
hwnd:欲定位的視窗
hWndInsertAfter:視窗控制代碼。在視窗列表中,視窗hwnd會置於這個視窗控制代碼的後面。也可能選用下述值之一:
0 將視窗置於Z序列的頂部;Z序列代表在分級結構中,視窗針對一個給定級別的視窗顯示的順序
-1 將視窗置於列表頂部,並位於任何最頂部視窗的前面
-2 將視窗置於列表頂部,並位於任何最頂部視窗的後面
x 視窗新的x座標。如hwnd是一個子視窗,則x用父視窗的客戶區座標表示
y 視窗新的y座標。如hwnd是一個子視窗,則y用父視窗的客戶區座標表示
cx 指定新的視窗寬度
cy 指定新的視窗高度
wFlags 可以是下面一個值或幾個數值的和
&H1 不改變大小
&H2 不改變位置
&H4 不改變Z序列(忽略 hWndInsertAfter 引數)
&H10 不啟用窗體
&H40 顯示窗體
&H80 隱藏窗體
註解:視窗成為最頂級視窗後,它下屬的所有視窗也會進入最頂級。一旦將其設為非最頂級,則它的所有下屬和物主視窗也會轉為非最頂級。Z序列用垂直於螢幕的一根假想Z軸量化這種從頂部到底部排列的視窗順序
回覆列表
在Windows中,任何視窗都是可以移動的,無論他是MFC程式的主介面,還是主介面上的一個子控制元件。使用MoveWindow或SetWindowPos函式 如果MFC自己沒有做全屏的工作,就需要你動態地計算全屏後各個控制元件的具體位置,然後用MoveWindow將其移動到相應的位置,以此來實現全屏參考 winapi - In c++ Windows API resize window during runtime?補充一句,你怎麼還在學習MFC這種已經過時的技術?沒必要,划不來