以上问题需要以下几个API函数(可以从API VIEW里看到):
Public Declare Function SelectObject Lib "gdi32" (ByVal hdc As Long, ByVal hObject As Long) As Long'将绘图的对象选入DC中
Public Declare Function DeleteObject Lib "gdi32" (ByVal hObject As Long) As Long'将绘图对象从DC中删除
Public Declare Function CreateSolidBrush Lib "gdi32" (ByVal crColor As Long) As Long'创建一个刷子的绘图对象
Public Declare Function CreatePen Lib "gdi32" (ByVal nPenStyle As Long, ByVal nWidth As Long, ByVal crColor As Long) As Long'创建一个画笔的绘图对象
Public Declare Function Ellipse Lib "gdi32" (ByVal hdc As Long, ByVal X1 As Long, ByVal Y1 As Long, ByVal X2 As Long, ByVal Y2 As Long) As Long'画椭圆
Public Declare Function Polygon Lib "gdi32" (ByVal hdc As Long, lpPoint As POINTAPI, ByVal nCount As Long) As Long'画多边形
'需要定义的数据类型
Public Type RECT
Left As Long
Top As Long
Right As Long
Bottom As Long
End Type
以下是在窗体上绘图的例子:
Private Sub Form_Load()
Me.AutoRedraw=True
dim hNewPen,hNewBrush as long
hNewPen = CreatePen(0, 1, RGB(255, 0, 0))'创建一个画笔:线型为实线,宽度为1,颜色为红
hNewBrush= CreateSolidBrush(RGB(0, 0, 255))'创建一个刷子:颜色为蓝
SelectObject Me.hdc, hNewPen'装入画笔
SelectObject Me.hdc, hNewBrush'装入刷子
Ellipse Me.hdc,0,0,150,100'用装入的刷子和画笔绘制一个边框为红填充为蓝的椭圆
Dim n As Integer
n=5'假定多边形的顶点数为5
Dim pPoly() as POINTAPI'创建用来存储多边形顶点坐标的数据结构数组
Redim pPoly(n-1)
pPoly(0).x = 200: pPoly(0).y = 0'定义每一个顶点的坐标
pPoly(1).x = 300: pPoly(1).y = 0
pPoly(2).x = 320: pPoly(2).y = 50
pPoly(3).x = 250: pPoly(3).y = 100
pPoly(4).x = 180: pPoly(4).y = 50
Polygon Me.hdc, pPoly(0), n'绘制多边形(红框蓝底)
DeleteObject hNewPen
DeleteObject hNewBrush'一定要删除创建的画笔和刷子
End Sub