先说一下效果:一张图片,一个蒙板,蒙板有分为透明区域和不透明区域。透明区域是一个圆形(蒙板是矩形),大小固定。蒙板可以移动,这样可以显示不同的图片区域。然后是双击截取透明区域的图片(不知道这次表达清楚了没)。说问题:那个蒙板还不知道怎么做。用什么控件?透明怎么做?各位高手给点思路~谢先

解决方案 »

  1.   

    蒙版区域固定且蒙版不抗锯齿的话的话:
    alphablend+SetClipRgn 
      

  2.   

    没有半透明的话在 VB 中很简单
    Option Explicit
    Private m_pic As IPictureDispPrivate Sub MaskPicture(ByVal X As Long, ByVal Y As Long)
        '画黑白蒙板'
        Picture1.Cls
        Picture1.Circle (X, Y), 20
        '用蒙板和图片进行 And 操作'
        Picture1.PaintPicture m_pic, 0, 0, , , , , , , vbSrcAnd
    End SubPrivate Sub Form_Load()
        Me.ScaleMode = vbPixels
        
        Picture1.AutoRedraw = True
        Picture1.ScaleMode = vbPixels
        Picture1.BackColor = vbBlack
        Picture1.ForeColor = vbWhite
        Picture1.FillColor = vbWhite
        Picture1.FillStyle = vbFSSolid
        
        Set m_pic = LoadPicture("C:\Temp\1.bmp")
        MaskPicture 10, 10
    End SubPrivate Sub Picture1_DblClick()
        SavePicture Picture1.Image, "C:\Temp\2.bmp"
    End SubPrivate Sub Picture1_MouseMove(Button As Integer, Shift As Integer, X As Single, Y As Single)
        MaskPicture X, Y
    End Sub