BOOL SetWindowPos(
HWND hWnd, // 窗口的句柄;
HWND hWndInsertAfter, // 窗口次序句柄,
int X, // 窗口左上角的水平位置;
int Y, // 窗口左上角的垂直位置;
int cx, // 窗口的宽度;
int cy, // 窗口的高度;
UINT uFlags file://标志位;
);
这里需要解释的有hWndInsertAfter、uFlags两个参数
hWndInsertAfter
在窗口的"Z"序中排在需要的设置的窗口之前的窗口句柄;这个参数取以下值:
Value Meaning
HWND_BOTTOM 将要操作的窗口放置在所有窗口之下;
HWND_NOTOPMOST 将要操作的窗口放置在"non-topmost"窗口之下;
HWND_TOP 将操作的窗口放置在所有的窗口之上;
HWND_TOPMOST 将要操作的窗口放置在"non-topmost"窗口之上;
uFlags
规定窗口的尺寸和位置的标志,这个参数通常取以下值:
Value Meaning
SWP_DRAWFRAME 窗口重画时,绘制出窗口类中所描述的窗口的框架
SWP_HIDEWINDOW 隐藏窗口;
SWP_NOACTIVATE 窗口无任何动作;
SWP_NOMOVE
保持窗口的当前位置;
SWP_NOREDRAW 在新位置并不重画窗口;
SWP_NOSIZE 改变窗口的位置,并不改变窗口的大小,既忽略cx,cy两个参数的值;
SWP_NOZORDER 窗口重画时,保留当前的顺序,既忽略hWndInsertAfter参数的值
SWP_SHOWWINDOW Displays the window.
Public 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
End Sub
Private Sub Form2_Load( )
Const HWND_TOPMOST=-1
Const SWP_NOACTIVATE=&H10
SetWindowPos Me.hWnd, HWND_TOPMOST, ScreenWidht/2, 0, ScreenWidht/2, ScreenHeight, SWP_NOACTIVATE '在副显示器的显示区域上显示窗口2;
End Sub