WinGetClipPS: Difference between revisions
Appearance
Created page with "This method obtains a clipped cache presentation space. ==Syntax== WinGetClipPS(hwnd, hwndClipWindow, ulClipflags) ==Parameter== ;hwnd (HWND):Handle of window for which the..." |
No edit summary |
||
Line 20: | Line 20: | ||
==Returns== | ==Returns== | ||
;hps (HPS):Presentation-space handle that can be used for drawing. | ;hps (HPS):Presentation-space handle that can be used for drawing. | ||
==Errors== | |||
Possible returns from WinGetLastError | |||
;PMERR_INVALID_HWND (0x1001) | |||
:An invalid window handle was specified. | |||
==Remarks== | |||
The presentation space obtained by this method is a cache "micro-presentation space" present in the system. This can be used for simple drawing operations that do not depend on long-term data being stored in the presentation space. | |||
When the application finishes using the clipped cache presentation space, it should destroyed it using the [[WinReleasePS]] function. | |||
==Example Code== | |||
Declaration: | |||
<pre> | |||
#define INCL_WINWINDOWMGR /* Or use INCL_WIN, INCL_PM, Also in COMMON section */ | |||
#include <os2.h> | |||
HWND hwnd; /* Handle of window for which the presentation space is required. */ | |||
HWND hwndClipWindow; /* Handle of window for clipping. */ | |||
ULONG ulClipflags; /* Clipping control flags. */ | |||
HPS hps; /* Presentation-space handle that can be used for drawing. */ | |||
hps = WinGetClipPS(hwnd, hwndClipWindow, ulClipflags); | |||
</pre> | |||
This example responds to an application defined message (IDM_FILL) and uses WinGetClipPS to obtain and associate a cached presentation space with a window, where the PS is clipped to the children of the window. | |||
<pre> | |||
#define INCL_WINWINDOWMGR /* Window Manager Functions */ | |||
#include <os2.h> | |||
HWND hwnd; /* PS window */ | |||
HWND hwndClip; /* clipping window */ | |||
RECTL rcl; /* update region */ | |||
HPS hps; /* presentation-space handle */ | |||
case IDM_FILL: | |||
hps = WinGetClipPS(hwnd, /* handle of the PS window */ | |||
hwndClip, /* handle of clipping window */ | |||
PSF_CLIPCHILDREN); /* clipping flags */ | |||
WinFillRect(hps, &rcl, CLR_WHITE); | |||
WinReleasePS(hps); | |||
</pre> | |||
== Related Functions== | |||
* [[WinBeginPaint]] | |||
* [[WinEnableWindowUpdate]] | |||
* [[WinEndPaint]] | |||
* [[WinExcludeUpdateRegion]] | |||
* [[WinGetPS]] | |||
* [[WinGetScreenPS]] | |||
* [[WinInvalidateRect]] | |||
* [[WinInvalidateRegion]] | |||
* [[WinIsWindowShowing]] | |||
* [[WinIsWindowVisible]] | |||
* [[WinLockVisRegions]] | |||
* [[WinOpenWindowDC]] | |||
* [[WinQueryUpdateRect]] | |||
* [[WinQueryUpdateRegion]] | |||
* [[WinRealizePalette]] | |||
* [[WinReleasePS]] | |||
* [[WinShowWindow]] | |||
* [[WinUpdateWindow]] | |||
* [[WinValidateRect]] | |||
* [[WinValidateRegion]] | |||
[[Category:Win]] | [[Category:Win]] |
Latest revision as of 18:35, 14 May 2025
This method obtains a clipped cache presentation space.
Syntax
WinGetClipPS(hwnd, hwndClipWindow, ulClipflags)
Parameter
- hwnd (HWND)
- Handle of window for which the presentation space is required.
- hwndClipWindow (HWND)
- Handle of window for clipping.
- HWND_BOTTOM - Clip the last window in the sibling chain and continue clipping until the next window is hwnd or NULLHANDLE.
- HWND_TOP - Clip the first window in the sibling chain and continue clipping until the next window is hwnd or NULLHANDLE.
- NULLHANDLE - Clip all siblings to the window hwnd.
- ulClipflags (ULONG)
- Clipping control flags.
- PSF_CLIPSIBLINGS - Clip out all siblings of hwnd.
- PSF_CLIPCHILDREN - Clip out all children of hwnd.
- PSF_CLIPUPWARDS - Taking hwndClipWindow as a reference window, clip out all sibling windows before hwndClipWindow. This value may not be used with PSF_CLIPDOWNWARDS.
- PSF_CLIPDOWNWARDS - Taking hwndClipWindow as a reference window, clip out all sibling windows after hwndClipWindow. This value may not be used with PSF_CLIPUPWARDS.
- PSF_LOCKWINDOWUPDATE - Calculate a presentation space that keeps a visible region even though output may be locked by the WinLockWindowUpdate function.
- PSF_PARENTCLIP - Calculate a presentation space that uses the visible region of the parent of hwnd but with an origin calculated for hwnd.
Returns
- hps (HPS)
- Presentation-space handle that can be used for drawing.
Errors
Possible returns from WinGetLastError
- PMERR_INVALID_HWND (0x1001)
- An invalid window handle was specified.
Remarks
The presentation space obtained by this method is a cache "micro-presentation space" present in the system. This can be used for simple drawing operations that do not depend on long-term data being stored in the presentation space.
When the application finishes using the clipped cache presentation space, it should destroyed it using the WinReleasePS function.
Example Code
Declaration:
#define INCL_WINWINDOWMGR /* Or use INCL_WIN, INCL_PM, Also in COMMON section */ #include <os2.h> HWND hwnd; /* Handle of window for which the presentation space is required. */ HWND hwndClipWindow; /* Handle of window for clipping. */ ULONG ulClipflags; /* Clipping control flags. */ HPS hps; /* Presentation-space handle that can be used for drawing. */ hps = WinGetClipPS(hwnd, hwndClipWindow, ulClipflags);
This example responds to an application defined message (IDM_FILL) and uses WinGetClipPS to obtain and associate a cached presentation space with a window, where the PS is clipped to the children of the window.
#define INCL_WINWINDOWMGR /* Window Manager Functions */ #include <os2.h> HWND hwnd; /* PS window */ HWND hwndClip; /* clipping window */ RECTL rcl; /* update region */ HPS hps; /* presentation-space handle */ case IDM_FILL: hps = WinGetClipPS(hwnd, /* handle of the PS window */ hwndClip, /* handle of clipping window */ PSF_CLIPCHILDREN); /* clipping flags */ WinFillRect(hps, &rcl, CLR_WHITE); WinReleasePS(hps);
Related Functions
- WinBeginPaint
- WinEnableWindowUpdate
- WinEndPaint
- WinExcludeUpdateRegion
- WinGetPS
- WinGetScreenPS
- WinInvalidateRect
- WinInvalidateRegion
- WinIsWindowShowing
- WinIsWindowVisible
- WinLockVisRegions
- WinOpenWindowDC
- WinQueryUpdateRect
- WinQueryUpdateRegion
- WinRealizePalette
- WinReleasePS
- WinShowWindow
- WinUpdateWindow
- WinValidateRect
- WinValidateRegion