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 )



Handle to a pen data object.


Offset of x-axis; that is, the amount to move left or right. To move left, the dx value must be negative.


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.


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.


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

, ResizePenData

Software for developers
Delphi Components
.Net Components
Software for Android Developers
More information resources
Unix Manual Pages
Delphi Examples
Databases for Amazon shops developers
Amazon Categories Database
Browse Nodes Database