Jump to content

WinSetParent

From EDM2
Revision as of 01:39, 9 April 2025 by Martini (talk | contribs) (Created page with "This function sets the parent for ''hwnd'' to ''hwndNewParent''. ==Syntax== WinSetParent(hwnd, hwndNewParent, fRedraw) ==Parameters== ;hwnd (HWND) - Input: Window handle. ;hwndNewParent (HWND) - Input: New parent window handle. :This cannot be a descendant of ''hwnd''. :If this parameter is a desktop window handle or HWND_DESKTOP, ''hwnd'' becomes a main window. :If this parameter is not equal to HWND_OBJECT, it must be a descendant of the same desktop window...")
(diff) ← Older revision | Latest revision (diff) | Newer revision → (diff)

This function sets the parent for hwnd to hwndNewParent.

Syntax

WinSetParent(hwnd, hwndNewParent, fRedraw)

Parameters

hwnd (HWND) - Input
Window handle.
hwndNewParent (HWND) - Input
New parent window handle.
This cannot be a descendant of hwnd.
If this parameter is a desktop window handle or HWND_DESKTOP, hwnd becomes a main window.
If this parameter is not equal to HWND_OBJECT, it must be a descendant of the same desktop window as hwnd.
If this parameter is HWND_OBJECT or a window handle returned by WinQueryObjectWindow, hwnd becomes an object window.
fRedraw (BOOL) - Input
Redraw indicator.
TRUE: If hwnd is visible, any necessary redrawing of both the old parent and the new parent windows is performed.
FALSE: No redrawing of the old and new parent windows is performed. This avoids an extra device update when subsequent calls cause the windows to be redrawn.

Returns

rc (BOOL) - Returns
Parent-changed indicator.
TRUE
Parent successfully changed.
FALSE
Parent not successfully changed.

Remarks

This function returns an error (PMERR_INVALID_HWND) if the user specifies the desktop window as the new parent of a window to which a clip region is currently set.

Errors

Possible returns from WinGetLastError:

PMERR_INVALID_HWND (0x1001)
An invalid window handle was specified.
PMERR_INVALID_FLAG (0x1019)
An invalid bit was set for a parameter. Use constants defined by PM for options, and do not set any reserved bits.

Example Code

#define INCL_WINWINDOWMGR /* Or use INCL_WIN, INCL_PM, */
#include <os2.h>

HWND     hwnd;          /* Window handle. */
HWND     hwndNewParent; /* New parent window handle. */
BOOL     fRedraw;       /* Redraw indicator. */
BOOL     rc;            /* Parent-changed indicator. */

rc = WinSetParent(hwnd, hwndNewParent, fRedraw);

This example uses the WinSetParent call to change a window to a main window.

#define INCL_WINWINDOWMGR
#include <OS2.H>

HWND hwnd;    /* Window handles */
WinSetParent(hwnd,
            HWND_DESKTOP,
            TRUE);  /* Do any necessary redrawing */

Related Functions