那位高手知道XP资源管理器中的选择拉框是怎么做出透明效果的呀(可以打开资源管理  用拉框的形式选择文件就知道了),如果想回复NULL_Brush的就别回复了,谢谢!!!

解决方案 »

  1.   

    请问你用过GDI+没有?对Alpha透明度有没有认识?
    如果你知道颜色可是是半透明的,自然知道这个效果是怎么绘制出来的了。
      

  2.   

    我记得有API的 去网上搜一下,不过那个好像不能调整透明度,自己计算的话似乎很慢哦。
      

  3.   

    SetLayeredWindowAttributes这个API,这个有限制还有alpha shadow
      

  4.   

    给ListView加上LVS_EX_DOUBLEBUFFER样式(当然啦,ListView也需要支持多选)
    然后,给你的程序加上XP样式效果(可以使用 程序名.exe.mxxxxxx(忘记了)、也可以编译成资源文件)。
    就可以了!
      

  5.   

    http://blog.csdn.net/barenx/archive/2008/03/29/2227196.aspx
    可以用这个加样式文件
      

  6.   

    是附件里的半透明窗口吗?试试下面的吧
    Private Declare Function SetWindowLong Lib "user32" _
                    Alias "SetWindowLongA" _
                    (ByVal hwnd As Long, _
                    ByVal nIndex As Long, _
                    ByVal dwNewLong As Long) _
                    As Long
    Private Declare Function GetWindowLong Lib "user32" _
                    Alias "GetWindowLongA" _
                    (ByVal hwnd As Long, _
                    ByVal nIndex As Long) _
                    As LongPrivate Const GWL_EXSTYLE = (-20)
    Private Const LWA_ALPHA As Long = &H2
    Private Const WS_EX_LAYERED As Long = &H80000Private Declare Function SetLayeredWindowAttributes Lib "user32" _
                    (ByVal hwnd As Long, _
                    ByVal crKey As Long, _
                    ByVal bAlpha As Long, _
                    ByVal dwFlags As Long) _
                    As LongPrivate Sub Form_Load()
      Dim p As Long
      p = GetWindowLong(Me.hwnd, GWL_EXSTYLE) '取得当前窗口属性
      Call SetWindowLong(Me.hwnd, GWL_EXSTYLE, p Or WS_EX_LAYERED)
      '加上一个透明属性
      Call SetLayeredWindowAttributes(Me.hwnd, 0, 163, LWA_ALPHA)
    End Sub
    [color=#0000FF]
    [/color]