# Re: 为什么要用弧线

Posted by Honey on March 23, 1999 at 18:30:11:

In Reply to: Re: 为什么要用弧线 posted by wesley on March 22, 1999 at 02:31:35:

试试看以下的程式
在form上放一个command1 贴上以下程式

Private Declare Function PolyBezier _
Lib "gdi32" (ByVal hdc As Long, _
lppt As POINTAPI, ByVal cPoints _
As Long) As Long
Private Type POINTAPI
x As Long
y As Long
End Type
Option Explicit

Private Sub Command1_Click()
Dim Cn(3) As POINTAPI
Cn(0).x = 0
Cn(0).y = 0
'/*第一个点座标*/

Cn(1).x = 300
Cn(1).y = 100
'/*第一个点座标*/

Cn(2).x = 50
Cn(2).y = 150
'/*第一个点座标*/

Cn(3).x = 200
Cn(3).y = 200
'/*第一个点座标*/

PolyBezier Me.hdc, Cn(0), 4
End Sub

关于PolyBezier的参数hdc lppt cCount 说明如下
hdc
传入绘图物件的hdc
若画在picture1上便传入picture1.hdc

lppt
传入点的座标 是一个阵列 须宣告成POINTAPI型态
拥有X,Y座标 第一个及最后一个座标点分别代表启点及终点
其余是控制曲线弯曲方向 若第二个点偏向 右下 起点终点的
连线 再第二点上方的部分会偏向 右下

cCount
传入lppt所含阵列的个数 这个值须为3的倍数加一
如4,7,9,12......
微软的SDK说明文件对cCount是这样说的(array翻成阵列 不是排列)
Specifies the number of points in the lppt array.
This value must be three times the number of curves
to be drawn, because each Bezier curve requires two
control points and an ending point.

Follow Ups: