I also find this GUI.xs method useful:
(place right after SetWindowLong)
###########################################################################
# (@)METHOD:SetWindowPos(WINDOW,INSERTAFTER,X,Y,cx,cy,FLAGS)
# The SetWindowPos function changes the size, position,
# and Z order of a child, pop-up, or top-level
# window. Child, pop-up, and top-level windows are
# ordered according to their appearance on the
# screen. The topmost window receives the highest rank
# and is the first window in the Z order.
#
# INSERTAFTER - Handle to the window to precede the positioned window
# in the Z order. This parameter must be a window handle
# or one of the following integer values.
# HWND_BOTTOM
# Places the window at the bottom of the Z order. If
# the WINDOW parameter identifies a topmost window,
# the window loses its topmost status and is placed
# at the bottom of all other windows.
# HWND_NOTOPMOST
# Places the window above all non-topmost windows
# (that is, behind all topmost windows). This flag
# has no effect if the window is already a
# non-topmost window.
# HWND_TOP
# Places the window at the top of the Z order.
# HWND_TOPMOST
# Places the window above all non-topmost
# windows. The window maintains its topmost position
# even when it is deactivated.
BOOL
SetWindowPos(handle, insertafter = NULL, X = -1, Y = -1, cx = 0, cy =
0, flags = (SWP_NOMOVE | SWP_NOSIZE | SWP_NOZORDER |
SWP_FRAMECHANGED))
HWND handle
HWND insertafter
int X
int Y
int cx
int cy
int flags
PREINIT:
RECT myRect;
CODE:
if ((X == -1) || (Y == -1)) {
if(!GetWindowRect(handle, &myRect)) {
XSRETURN_NO;
} else {
if (Y == -1)
Y = (int) myRect.top;
if (X == -1)
X = (int) myRect.left;
}
}
RETVAL = SetWindowPos(handle, insertafter, X, Y, cx, cy, flags);
OUTPUT:
RETVAL
--
Reini Urban
http://phpwiki.org/
http://spacemovie.mur.at/ http://helsinki.at/