vb如何使picturebox控件里的图标变暗?
或变成“泛蓝色”的图标?
像 桌面图标被选中后,整个图标呈现出泛蓝色,如何做到?
我取出了选中前后某同一个点的RGB值,然后对比前后RGB值的变化,找不到规律。 

解决方案 »

  1.   

    如果你使用透明图标只要将picturebox的背景色设成蓝色,picturebox与图标一样大就有“泛蓝色”的效果。
      

  2.   


    Private Sub Picture1_Click()
    Picture1.BackColor = vbBlue
    End SubPrivate Sub Picture1_DblClick()
    Form2.Show
    End Sub
      

  3.   

    使用AlphaBlend函数,用法自己GOOGLE一下。
      

  4.   

    简单的方法是用2个图标来显示选取/未选取的
    把所有正常的图标放在一个imglist里 把反显或暗色的放到另一个inmglist里
    需要显示哪个就换哪个了
      

  5.   

    '添加 Command1 Picture1(装载一张图片)Option Explicit
    Private Declare Function SetPixelV Lib "gdi32" (ByVal hDC As Long, ByVal x As Long, ByVal y As Long, ByVal crColor As Long) As Byte
    Private Declare Function GetPixel Lib "gdi32" (ByVal hDC As Long, ByVal x As Long, ByVal y As Long) As Long
    Dim Brightness!, NewColor&, X1&, Y1&, Red&, Green&, Blue&
    Private Sub Command1_Click()
       Brightness = 0.5
       For X1 = 0 To Picture1.Width
          For Y1 = 0 To Picture1.Height
             NewColor = GetPixel(Picture1.hDC, X1, Y1)
             Red = (NewColor Mod 256)
             Blue = (Int(NewColor / 65536))
             Green = ((NewColor - (Blue * 65536) - Red) / 256)
             Red = IIf(Red * Brightness > 255, 255, Red * Brightness)
             Red = IIf(Red * Brightness < 0, 0, Red * Brightness)
             Green = IIf(Green * Brightness > 255, 255, Green * Brightness)
             Green = IIf(Green * Brightness < 0, 0, Green * Brightness)
             Blue = IIf(Blue * Brightness > 255, 255, Blue * Brightness)
             Blue = IIf(Blue * Brightness < 0, 0, Blue * Brightness)
             SetPixelV Picture1.hDC, X1, Y1, RGB(Red, Green, Blue)
          Next Y1
          DoEvents
       Next X1
       Picture1.Refresh
    End Sub
      

  6.   

    楼上的方法正确,但是效率不高. 改用ALPHABLEND就会快很多.
    或者干脆就用两个图标,一个是未选中的效果,一个是选中的效果.
      

  7.   

    哈哈要快的话那就用一个 PictureBox 背景是黑的,大小与Picture1相同, 然后再改变这张黑图的 透明度 你想多暗就有多暗 而且是没其它方法比这个快速.
      

  8.   

    谢谢cbm666,不过,太暗了,而且是黑色的。桌面上的图标被点击选中后,是泛蓝色的,我想要那种效果。而且,楼上的代码,确实有点慢。我昨晚上夜班,我想一觉醒来后再琢磨琢磨。谢谢你能帮我!
      

  9.   

    Brightness = 0.5 0.9 0.8 都能比 0.5亮啊要加亮 1.5 2.0
      

  10.   

    这里怎么上传图片?我把图片上传到这里了。
    http://zhidao.baidu.com/question/134438881.html
    我要的是图片中的效果,上面的代码实现不了,主要是背景色都变了。