记住3个点的坐标,利用API函数CreatePolygonRgn根据坐标建立
三角形区域,使用API函数FillRgn填充这个区域 :Private Type POINTAPI
        X As Long
        Y As Long
End Type
Private Type RECT
        Left As Long
        Top As Long
        Right As Long
        Bottom As Long
End TypePrivate Declare Function CreatePolygonRgn Lib "gdi32" (lpPoint As POINTAPI, _
        ByVal nCount As Long, ByVal nPolyFillMode As Long) As Long
Private Declare Function FillRgn Lib "gdi32" (ByVal hdc As Long, _
        ByVal hRgn As Long, ByVal hBrush As Long) As Long
Private Declare Function PtInRegion Lib "gdi32" (ByVal hRgn As Long, _
        ByVal X As Long, ByVal Y As Long) As Long
Private Declare Function CreateSolidBrush Lib "gdi32" (ByVal crColor As Long) _
        As Long
Private Declare Function SelectObject Lib "gdi32" (ByVal hdc As Long, ByVal _
        hObject As Long) As Long
Private Declare Function GetLastError Lib "kernel32" () As LongConst ALTERNATE = 1
Const WINDING = 2Dim hRgn As LongPrivate Sub Command1_Click()
    Dim xx(4) As POINTAPI
    Dim lB As Long
    Dim lOld As Long
    
    xx(0).X = 0: xx(0).Y = 0
    xx(1).X = 50: xx(1).Y = 0
    xx(2).X = 50: xx(2).Y = 50
    xx(3).X = 0: xx(3).Y = 50
    xx(4).X = 5: xx(4).Y = 25
    
    '建立不规则区域
    hRgn = CreatePolygonRgn(xx(0), 5, ALTERNATE)
    If hRgn <> 0 Then
        lB = CreateSolidBrush(RGB(255, 0, 0))
        '填充不规则区域
        Debug.Print FillRgn(Picture1.hdc, hRgn, lB)
    End If
End Sub

解决方案 »

  1.   

    补充:声音命令
    Private Declare Function PlaySound Lib "winmm.dll" Alias "PlaySoundA" (ByVal lpszName As String, ByVal hModule As Long, ByVal dwFlags As Long) As Long
      

  2.   

    Polyline, PolyLineTo VB声明 
    Declare Function Polyline Lib "gdi32" Alias "Polyline" (ByVal hdc As Long, lpPoint As POINTAPI, ByVal nCount As Long) As Long
    Declare Function PolylineTo Lib "gdi32" Alias "PolylineTo" (ByVal hdc As Long, lppt As POINTAPI, ByVal cCount As Long) As Long 
    说明 
    用当前画笔描绘一系列线段。使用PolylineTo函数时,当前位置会设为最后一条线段的终点。它不会由Polyline函数改动 
    返回值 
    Long,非零表示成功,零表示失败 
    参数表 
    参数 类型及说明 
    hdc Long,要在其中绘图的设备场景 
    lpPoint POINTAPI,nCount POINTAPI结构数组中的第一个POINTAPI结构 
    nCount Long,lpPoint数组中的点数。会从第一个点到第二个点画一条线,以次类推 
      

  3.   

    但是我如何才能得到当前窗口中任意封闭区域的所有point点呢?即你所说的参数ncount如何得到呢?
      

  4.   

    可参考:
    http://www.csdn.net/expert/topic/719/719202.xml?temp=.223324
      

  5.   

    qb的play在vb里面没有办法实现,vb只可以播放音频文件
    还有就是可以控制机箱小喇叭
      

  6.   

    如果是规则图形,如你所说的三角形或梯形,用line命令,加一个for循环就够了