在win2000下很容易,一个函数就搞定了,好象是setwindowlong

解决方案 »

  1.   

    请问你是在Win2000,还是在Win9X 下做?
      

  2.   

    在Win2000下可以这样做
    Private Declare Function GetWindowLong Lib "user32" Alias "GetWindowLongA" (ByVal hwnd As Long, ByVal nIndex As Long) As Long 
    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 SetLayeredWindowAttributes Lib "user32" (ByVal hwnd As Long, ByVal crKey As Long, ByVal bAlpha As Byte, ByVal dwFlags As Long) As Long 
    hwnd是窗体的句柄
    crKey为颜色值
    bAlpha是透明度(0-255)
    dwFlags是透明方式。当取值为LWA_ALPHA时,crKey参数无效,bAlpha参数有效;
    当取值为LWA_COLORKEY时,bAlpha参数有效而窗体中的所有颜色为crKey的地方将变为透明
    Private Const WS_EX_LAYERED = &H80000
    Private Const GWL_EXSTYLE = (-20)
    Private Const LWA_ALPHA = &H2
    Private Const LWA_COLORKEY = &H1
    一个半透明窗体
    Private Sub Form_Load()
      Dim rtn As Long
      rtn = GetWindowLong(hwnd, GWL_EXSTYLE)
      rtn = rtn Or WS_EX_LAYERED
      SetWindowLong hwnd, GWL_EXSTYLE, rtn
      SetLayeredWindowAttributes hwnd, 0, 200, LWA_ALPHA
    End Sub
      

  3.   

    delphi源代码:http://member1.shangdu.net/home3/renhua2000/download/good/glassry.zip如果有用请给分
    钱就免啦,都是csdn的网友啦
      

  4.   

    2:wangfeng(bicom)
    我的就是这样子啊
      

  5.   

    rh(迎风飞扬) :好象无法运行。
    crazymens(疯子) :请告诉我你的通信地址或招商银行一卡通或其他汇款方式,以便汇款。
    另外,如果LABEL控件在BACKSTYLE=1的状态下只显示文字,而其他地方透明最好。
      

  6.   

    crazymens(疯子) 我也想要能也给我一个嘛?
    我得地址是 [email protected]