vb6.0 如何让frame和option的背景色与image中图片的颜色一致?

话句话说就是让frame和option变透明。因为frame和option中没有backstyle属性,所以能否考虑一下用取色函数完成之。(背景是在image中插入的图片... 话句话说就是让frame和option变透明。因为frame和option中没有backstyle属性,所以能否考虑一下用取色函数完成之。(背景是在image中插入的图片)

求代码。万分感谢!
展开
 我来答
szqaly
推荐于2016-02-12 · TA获得超过1745个赞
知道大有可为答主
回答量:2107
采纳率:77%
帮助的人:1526万
展开全部

在Microsoft Forms 2.0控件组中的单选按钮可以透明,Frame可以用线框或Microsoft Forms 2.0中的Image来代替,不过它们不能作为容器控件。


可以用图片框作Frame,在载入时把被它覆盖的窗口背景部分图像复制到图片框模仿透明效果。

下面代码把图片框Picture1覆盖的窗口背景复制图片框里:

Private Declare Function BitBlt Lib "gdi32" (ByVal hDestDC As Long, ByVal x As Long, ByVal y As Long, ByVal nWidth As Long, ByVal nHeight As Long, ByVal hSrcDC As Long, ByVal xSrc As Long, ByVal ySrc As Long, ByVal dwRop As Long) As Long
Private Declare Function GetClientRect Lib "user32" (ByVal hwnd As Long, lpRect As RECT) As Long
Private Declare Function ClientToScreen Lib "user32" (ByVal hwnd As Long, lpPoint As POINTAPI) As Long
Private Declare Function ScreenToClient Lib "user32" (ByVal hwnd As Long, lpPoint As POINTAPI) As Long
Private Type RECT
    Left As Long
    Top As Long
    Right As Long
    Bottom As Long
End Type
Private Type POINTAPI
    x As Long
    y As Long
End Type
Private Sub Form_Load()
    With Picture1
        .AutoRedraw = True
        Me.Show
        .Visible = False
        DoEvents
        Dim rc As RECT
        GetClientRect .hwnd, rc
        Dim P As POINTAPI
        P.x = rc.Left
        P.y = rc.Top
        ClientToScreen .hwnd, P
        ScreenToClient Me.hwnd, P
        BitBlt .hDC, 0, 0, rc.Right - rc.Left, rc.Bottom - rc.Top, Me.hDC, P.x, P.y, vbSrcCopy
        .Visible = True
    End With
End Sub
追问

你的代码太麻烦了,不过还是要感谢你的帮助。

我已经用RGB函数解决了。


你能看出来哪里是边界吗? 呵呵。

追答
麻烦是麻烦了点,但设置单色在背景有图形的话效果不佳,
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

下载百度知道APP,抢鲜体验
使用百度知道APP,立即抢鲜体验。你的手机镜头里或许有别人想知道的答案。
扫描二维码下载
×

类别

我们会通过消息、邮箱等方式尽快将举报结果通知您。

说明

0/200

提交
取消

辅 助

模 式