OffsetPenData
1.0 2.0
Offsets the
coordinates in an HPENDATA memory block to make them relative to another
origin.
BOOL OffsetPenData( HPENDATA hpndt, int
dx, int dy )
Parameters
hpndt
Handle to a
pen data object.
dx
Offset of
x-axis; that is, the amount to move left or right. To move left, the dx
value must be negative.
dy
Offset of
y-axis; that is, the amount to move up or down. To move up, the dy value
must be negative.
Return Value
Returns TRUE
if successful, or FALSE if hpndt is in a compressed state.
Comments
For every
point in hpndt, dx is added to the x-coordinate and dy is
added to the y-coordinate. No overflow checks are made.
An
application can use OffsetPenData to make points at display resolution
relative to a particular window. If the window is then moved, the application
need only call OffsetPenData again to move the data by the same amount,
as shown in the example.
Example
The following
sample code illustrates using the OffsetPenData function.
DWORD dwOrg; // Store window
origin
.
.
.
// After creating window, note its current position
dwOrg = GetWindowOrg( hWnd );
.
.
.
switch( wMsg )
{
case
WM_MOVE:
dx = (int) (LOWORD(lParam) - LOWORD(dwOrg)); // X increment
dy = (int) (HIWORD(lParam) - HIWORD(dwOrg)); // Y increment
dwOrg
= (DWORD) lParam; //
Keep new org
OffsetPenData(
hpendata, dx, dy );
See Also