WinDrawPointer
Appearance
This function draws a pointer in the passed hps at the passed coordinates [lx, ly].
Syntax
WinDrawPointer(hps, lx, ly, hptrPointer, ulHalftone)
Parameters
- hps (HPS) - Input
- Presentation-space handle into which the pointer is drawn.
- This can be either a micro presentation space or a normal presentation space (see `GpiCreatePS` in the Graphics Programming Interface Programming Reference).
- lx (LONG) - Input
- x-coordinate at which to draw the pointer, in device coordinates.
- ly (LONG) - Input
- y-coordinate at which to draw the pointer, in device coordinates.
- hptrPointer (HPOINTER) - Input
- Pointer handle.
- The pointer should be loaded using WinLoadPointer, WinCreatePointer, or WinCreatePointerIndirect.
- ulHalftone (ULONG) - Input
- Shading control with which to draw the pointer.
- DP_NORMAL:: As it normally appears.
- DP_HALFTONED:: With a halftone pattern where black normally appears.
- DP_INVERTED:: Inverted, black for white and white for black.
- DP_MINIICON:: Bit map of a mini icon.
Returns
- rc (BOOL) - Returns
- Success indicator.
- TRUE
- Successful completion.
- FALSE
- Function failed.
Remarks
This function should only be used in draw mode (DM_DRAW) to a screen device context.
Errors
Possible returns from WinGetLastError:
- PMERR_INVALID_HPTR (0x101B)
- An invalid pointer 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_WINPOINTERS /* Or use INCL_WIN, INCL_PM, */
#include <os2.h>
HPS hps; /* Presentation-space handle into which the pointer is drawn. */
LONG lx; /* x-coordinate at which to draw the pointer, in device coordinates. */
LONG ly; /* y-coordinate at which to draw the pointer, in device coordinates. */
HPOINTER hptrPointer; /* Pointer handle. */
ULONG ulHalftone; /* Shading control with which to draw the pointer. */
BOOL rc; /* Success indicator. */
rc = WinDrawPointer(hps, lx, ly, hptrPointer,
ulHalftone);
This example draws a bit map pointer, created by either WinCreatePointer or WinCreatePointerIndirect, in response to a paint message (WM_PAINT).
#define INCL_WINPOINTERS /* Window Pointer Functions */
#define INCL_GPIBITMAPS /* Graphics bit-map functions */
#include <os2.h>
HPS hps; /* presentation-space handle */
HWND hwnd; /* window handle */
HPOINTER hptr; /* bit-map pointer handle */
HBITMAP hbm; /* bit-map handle */
BOOL fSuccess; /* success indicator */
ULONG ulHalftone=DP_NORMAL; /* draw with normal shading */
case WM_CREATE:
hps = WinBeginPaint(hwnd, NULLHANDLE, NULL);
hbm = GpiLoadBitmap(hps, 0L, IDP_BITMAP, 64L, 64L);
WinEndPaint(hps);
hptr = WinCreatePointer(HWND_DESKTOP, hbm,
TRUE, /* use true (system) pointer */
0, 0); /* hot spot offset (0,0) */
case WM_PAINT:
hps = WinBeginPaint(hwnd, NULLHANDLE, NULL);
fSuccess = WinDrawPointer(hps, 50, 50, hptr, ulHalftone);
WinEndPaint(hps);
Related Functions
- WinCreatePointer
- WinCreatePointerIndirect
- WinDestroyPointer
- WinDrawBitmap
- WinDrawBorder
- WinDrawText
- WinFillRect
- WinGetSysBitmap
- WinInvertRect
- WinLoadPointer
- WinQueryPointer
- WinQueryPointerInfo
- WinQueryPointerPos
- WinQueryPresParam
- WinQuerySysPointer
- WinQuerySysPointerData
- WinRemovePresParam
- WinScrollWindow
- WinSetPointer
- WinSetPointerPos
- WinSetPresParam
- WinSetSysPointerData
- WinShowPointer