Private Type POINTAPI
x As Long
y As Long
End Type
Private Declare Function CreatePolygonRgn Lib "gdi32" (lpPoint As POINTAPI, ByVal nCount As Long, ByVal nPolyFillMode As Long) As Long
Private Declare Function DeleteObject Lib "gdi32" (ByVal hObject As Long) As Long
Private Declare Function PtInRegion Lib "gdi32" (ByVal hRgn As Long, ByVal x As Long, ByVal y As Long) As Long
'函数说明:
'CreatePolygonRgn( )函数是用来创建一个图形热点对象,lpPoint参数为形成图形热点区的第一个边界点坐标,nCount参数指出了边界点的个数(如nCount<3时,将无法形成一个封闭区域),nPolyFillMode参数指定填充模式,该函数返回图形热点对象(Long型);
'DeleteObject( )函数用来删除一个由hObject参数指定的对象;
'PtInRegion( )函数用来判断某坐标(由参数x、y指出)是否在hRgn图形热 点对象指出的热点区内,若是返回1,否则返回0。
Sub diag()
Dim p(3) As POINTAPI, temp As String, x() As String, i As Long, rgn As Long, beline As Boolean
error:
temp = InputBox("请依次输入四个点的横坐标及纵坐标:", "提示", "100,100,500,100,300,300,200,150") '
x = Split(temp, ",")
If UBound(x) <> 7 Then MsgBox "输入有误,请重新输入!": GoTo error
For i = 0 To 3
p(i).x = CLng(x(i * 2))
p(i).y = CLng(x(i * 2 + 1))
Next