SetWindowPos Me.hwnd, HWND_TOPMOST, 0, 0, 0, 0, SWP_NOACTIVATE Or SWP_SHOWWINDOW Or SWP_NOMOVE Or SWP_NOSIZE 
   Dim rtn As Long 
   rtn = GetWindowLong(Me.hwnd, GWL_EXSTYLE) 
   rtn = rtn Or WS_EX_LAYERED 
   SetWindowLong Me.hwnd, GWL_EXSTYLE, rtn 
   SetLayeredWindowAttributes Me.hwnd, 0, 192, LWA_ALPHA 
用这段代码可以把窗口置顶变透明,但有个问题这样就无法去掉窗体的边框,怎办 

解决方案 »

  1.   

    有沒有試過將它的BorderStylen屬性改成 0(沒有邊框)
      

  2.   

    BorderStylen屬性改成 0,这个不行去不掉标题栏
      

  3.   

    '我这里试过可以的.Private Declare Function SetWindowPos Lib "user32.dll" (ByVal hwnd As Long, ByVal hWndInsertAfter As Long, ByVal x As Long, ByVal y As Long, ByVal cx As Long, ByVal cy As Long, ByVal wFlags As Long) As Long
    Private Declare Function GetWindowLong Lib "user32.dll" Alias "GetWindowLongA" (ByVal hwnd As Long, ByVal nIndex As Long) As Long
    Private Declare Function SetWindowLong Lib "user32.dll" Alias "SetWindowLongA" (ByVal hwnd As Long, ByVal nIndex As Long, ByVal dwNewLong As Long) As Long
    Private Declare Function SetLayeredWindowAttributes Lib "user32.dll" (ByVal hwnd As Long, ByVal crKey As Long, ByVal bAlpha As Byte, ByVal dwFlags As Long) As LongPrivate Const SWP_NOACTIVATE As Long = &H10
    Private Const SWP_SHOWWINDOW As Long = &H40
    Private Const SWP_NOMOVE As Long = &H2
    Private Const SWP_NOSIZE As Long = &H1
    Private Const WS_EX_LAYERED As Long = &H80000
    Private Const GWL_EXSTYLE As Long = -20
    Private Const LWA_ALPHA As Long = &H2
    Private Const HWND_TOPMOST As Long = -1
    Private Sub Form_Load()
    SetWindowPos Me.hwnd, HWND_TOPMOST, 0, 0, 0, 0, SWP_NOACTIVATE Or SWP_SHOWWINDOW Or SWP_NOMOVE Or SWP_NOSIZE
       Dim rtn As Long
       rtn = GetWindowLong(Me.hwnd, GWL_EXSTYLE)
       rtn = rtn Or WS_EX_LAYERED
       SetWindowLong Me.hwnd, GWL_EXSTYLE, rtn
       SetLayeredWindowAttributes Me.hwnd, 0, 192, LWA_ALPHA
    End Sub
      

  4.   

    有菜单也可以。你可以在FORM-LOAD里动态的SETWINDOWLONG,去掉标题栏和边框。我刚重装机,没编程工具,只能写个大概Private Sub Form_Load()
    SETWINDOWLONG ME.HWND,-16,GETWINDOWLONG(ME.HWND,-16) XOR ?????? XOR ??????? XOR 。。
    ME.HEIGHT=ME.HEIGHT+10
    END SUB
    上边的??????你自己找找,是窗体的样式。我记得有WS_BORDER、WS_DLGFRAME、WS_SYSMENU、WS_MINIMIZEBOX、WS_MAXIMIZEBOX。把这些样式都去掉。