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

MetricScalePenData, ResizePenData