none
请教VB 6.0关于编写桌面图标背景透明的代码问题 RRS feed

  • 问题

  •  请教VB 6.0关于编写桌面图标背景透明的代码问题如:

    Option Explicit
    Private Declare Function FindWindow Lib "user32" Alias "FindWindowA" (ByVal lpClassName _
        As String, ByVal lpWindowName As String) As Long
     
    Private Declare Function FindWindowEx Lib "user32" Alias "FindWindowExA" (ByVal hWnd1 _
        As Long, ByVal hWnd2 As Long, ByVal lpsz1 As String, ByVal lpsz2 As String) As Long
    Private Declare Function InvalidateRect Lib "user32" (ByVal hwnd As Long, ByVal lpRect _
        As Long, ByVal bErase As Long) As Long
       
    Private Declare Function SendMessage Lib "user32" Alias "SendMessageA" (ByVal hwnd As Long, _
        ByVal wMsg As Long, ByVal wParam As Long, lParam As Any) As Long

    Private Const LVM_SETTEXTBKCOLOR = &H1000 + 38
    Dim Parent&, Child&, CChild&
    Private Sub Command1_Click()
    '获取桌面的句柄
      Parent = FindWindow(vbNullString, "Program Manager")
      Child = FindWindowEx(Parent, 0, "SHELLDLL_DefView", vbNullString)
    '获取桌面图标的句柄
      CChild = FindWindowEx(Child, 0, "SysListView32", vbNullString)
    '设置桌面图标背景为透明
      SendMessage CChild, LVM_SETTEXTBKCOLOR, 0, ByVal &HFFFFFFFF
      InvalidateRect CChild, 0, True
    End Sub

    Private Sub Command2_Click()
      Dialog1.ShowColor
    '获取桌面的句柄
      Parent = FindWindow(vbNullString, "Program Manager")
      Child = FindWindowEx(Parent, 0, "SHELLDLL_DefView", vbNullString)
    '获取桌面图标的句柄
      CChild = FindWindowEx(Child, 0, "SysListView32", vbNullString)
    '设置桌面图标背景颜色等于对话框中的颜色
      SendMessage CChild, LVM_SETTEXTBKCOLOR, 0, ByVal Dialog1.Color
      InvalidateRect CChild, 0, True
    End Sub
    Private Sub Command3_Click()
      End
    End Sub

    这些代码在98下能正常运行,可是在XP,VISTA下根本就没有反应,说明他们没有通过XP,VISTA。请教高手们,怎么才能让他们在XP,VISTA下正常运行呢?谢谢

    2009年1月30日 3:30

答案

  • FSTEAM 说:

     我晕,兄弟,我是要编写的代码,不是要你这个答案。。。。。。。。。。。。。。晕死了。。。。。。。。。。。。。。。



    代码没问题,只是如果开了特校,你的代码就不能起作用
    http://feiyun0112.cnblogs.com/
    2009年1月31日 4:59
    版主

全部回复

  •  我的电脑-属性-高级-性能-设置, 把特效全部关掉就可以拉
    http://feiyun0112.cnblogs.com/
    2009年1月31日 1:33
    版主
  •  我晕,兄弟,我是要编写的代码,不是要你这个答案。。。。。。。。。。。。。。晕死了。。。。。。。。。。。。。。。
    2009年1月31日 4:33
  • FSTEAM 说:

     我晕,兄弟,我是要编写的代码,不是要你这个答案。。。。。。。。。。。。。。晕死了。。。。。。。。。。。。。。。



    代码没问题,只是如果开了特校,你的代码就不能起作用
    http://feiyun0112.cnblogs.com/
    2009年1月31日 4:59
    版主