VB2010做win7aero透明的代码,要求整个程序都是透明的。严禁抄袭!!!!!

2025-03-13 10:07:52
推荐回答(1个)
回答1:

Imports System.Runtime.InteropServices

Public Class Form1
     _
    Public Structure MARGINS
        Public cxLeftWidth As Integer
        Public cxRightWidth As Integer
        Public cyTopHeight As Integer
        Public cyButtomheight As Integer
    End Structure
     _
    Public Shared Function DwmExtendFrameIntoClientArea(ByVal hWnd As IntPtr, ByRef pMarinset As MARGINS) As Integer
    End Function

    '为了说明问题,这个Label是动态生成的,你可以自己在窗体上画,注意字体颜色不能是黑色
    Dim WithEvents Label1 As Label

    Private Sub Form1_Load(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles MyBase.Load
        On Error Resume Next
        Dim margins As MARGINS = New MARGINS
        margins.cxLeftWidth = -1
        margins.cxRightWidth = -1
        margins.cyTopHeight = -1
        margins.cyButtomheight = -1
        '这四个值分别是透明区域的左、右、上、下的高度,如果设置为-1则说明全透明。
        '如果设置指定区域则输入0以上的数字
        Dim hwnd As IntPtr = Me.Handle
        Dim result As Integer = DwmExtendFrameIntoClientArea(hwnd, margins)
        Me.BackColor = Color.Black
        Label1 = New Label
        Label1.Text = "Hello Aero"
        Label1.ForeColor = Color.Red
        Label1.Location = New Point(50, 80)
        Label1.Visible = True
        Me.Controls.Add(Label1)
    End Sub
End Class