This function draws a bezier curve in the designated object (the screen, printer, or image data).

[C++Builder/Visual C++]     BOOL IKPolyBezier(LPVOID DeviceValue, LPPOINT lpPoint, DWORD Points, PTR_IKPRINT_DRAWINFO DrawInfo, BYTE DeviceMode);
[Delphi]         function IKPolyBezier(DeviceValue: THandle; var lpPoint: TPoint; Points: DWORD; var DrawInfo: IKPRINT_DRAWINFO; DeviceMode: Byte): LongBool;
[Visual Basic]   Function IKPolyBezier(ByVal DeviceValue As Long, lpPoint As IKPOINT, ByVal Points As Long, DrawInfo As IKPRINT_DRAWINFO, ByVal DeviceMode As Byte) As Long

Parameters

Name Explanation
DeviceValue The device context or the raster image data (depending on the DeviceMode)
lpPoint A structure defining coordinates for the points of the polygonal area on the image

   In C++Builder and Visual C++, pass the pointer to the first element in the structure array

   In Delphi, if Pt is an array of TPoint, then the arguments are returned in the first elements of the array Pt[0]

   In Visual Basic, if Pt is an array of IKPOINT, then the arguments are returned in the first elements of the array Pt(0)

Points The number of points defining the polygonal area on the image (2 or more), i.e. the number of points in the lpPoint array
DrawInfo Structure whose members set the drawing information
DeviceMode The designated object where the polygon is drawn (0: Screen, 1: Printer, 2: Image data)

Return Value

Returns True (nonzero) if successful. Returns False (0) if unsuccessful.

Explanation

The IKPolyBezier function draws a bezier curve in the designated object (the screen, printer, or image data). The initial bezier curve consists of 4 points, a start point, 2 control points, and an endpoint. Thereafter the bezier curve consists of 3 points (the control points and endpoint). This method can draw in the following designated objects: screen, printer, and image data.

To execute this method, the following member variables of DrawInfo structure should be set PenWidth, PenStyle, PenMode, PenColor, Transparent, and BackColor. The BackColor property is enabled when the Transparent is False and the pen is set to draw solid lines.

The value contained in the Points parameter must be (3 X the number of beziers) + a start point.

If the DeviceMode parameter is 0 or 2 then the lpPoint member variables are in pixel units.

If the DeviceMode parameter is 1 then the lpPoint member variables are in 0.1mm units.


Sample code:

(1)C++Builder/Visual C++

    IKPRINT_DRAWINFO DrawInfo;

    POINT PtCurve[4];


    PtCurve[0].x = 10; PtCurve[0].y = 100;

    PtCurve[1].x = 50; PtCurve[1].y = 50;

    PtCurve[2].x = 100; PtCurve[2].y = 150;

    PtCurve[3].x = 150; PtCurve[3].y = 100;

    memset(&DrawInfo, 0, sizeof(IKPRINT_DRAWINFO));

    DrawInfo.PenColor = RGB(0, 0, 255);

    DrawInfo.PenStyle = 1;

    DrawInfo.PenWidth = 15;

    IKPolyBezier(hDC, PtCurve, 4, DrawInfo, 0);


(2)Delphi

    DrawInfo: IKPRINT_DRAWINFO;

    PtCurve: array[0..3] of TPoint;


    PtCurve[0].x := 10; PtCurve[0].y := 100;

    PtCurve[1].x := 50; PtCurve[1].y := 50;

    PtCurve[2].x := 100; PtCurve[2].y := 150;

    PtCurve[3].x := 150; PtCurve[3].y := 100;

    FillChar(DrawInfo, SizeOf(DrawInfo), 0);

    DrawInfo.PenColor := clGreen;

    DrawInfo.PenStyle := 1;

    DrawInfo.PenWidth := 15;

    IKPolyBezier(hDC, PtCurve[0], 4, DrawInfo, 0);


(3)Visual Basic

    Dim DrawInfo As IKPRINT_DRAWINFO

    Dim PtCurve(4) As IKPOINT


    PtCurve(0).x = 10: PtCurve(0).y = 100

    PtCurve(1).x = 50: PtCurve(1).y = 50

    PtCurve(2).x = 100: PtCurve(2).y = 150

    PtCurve(3).x = 150: PtCurve(3).y = 100

    DrawInfo.PenColor = vbGreen

    DrawInfo.PenStyle = 1

    DrawInfo.PenWidth = 15

    Call IKPolyBezier(hDC, PtCurve(0), 4, DrawInfo, 0)

 

The ImageKit10 ActiveX is a product created by Newtone Corporation