以文本方式查看主题

-  Foxtable(狐表)  (http://foxtable.com/bbs/index.asp)
--  专家坐堂  (http://foxtable.com/bbs/list.asp?boardid=2)
----  [求助]取消透明窗口  (http://foxtable.com/bbs/dispbbs.asp?boardid=2&id=80672)

--  作者:zcgmxf
--  发布时间:2016/1/28 15:22:00
--  [求助]取消透明窗口
给位大师,以前论坛里的让win7系统窗口透明的代码删除后窗口仍然透明,现在我想取消,删除代码后还是不行,该如何处理。请大师指点。
--  作者:大红袍
--  发布时间:2016/1/28 15:27:00
--  
具体些了什么代码?贴出看看。
--  作者:zcgmxf
--  发布时间:2016/1/28 15:46:00
--  

找了一会:好像就是用下面的代码就可以实现win7玻璃样窗口了

全局代码:

Public Declare Function DwmIsCompositionEnabled Lib "dwmapi.dll" Alias "DwmIsCompositionEnabled" (ByRef pfEnabled As Boolean) As Integer
Public Declare Function DwmExtendFrameIntoClientArea Lib "dwmapi.dll" Alias "DwmExtendFrameIntoClientArea" (ByVal hWnd As IntPtr, ByRef pMargin As Margins) As Integer

Public Structure Margins
    Public Left As Integer
    Public Right As Integer
    Public Top As Integer
    Public Bottom As Integer
End Structure

Dim pMargins As Margins
Public Sub WIN7Form_Load(ByVal sender As System.Object, ByVal e As System.EventArgs)
    pMargins = New Margins
    pMargins.Top = 40
    Dim en As Boolean = False
    If System.Environment.OSVersion.Version.Major >= 6 Then  \'如果是Vista系统或以上
        DwmIsCompositionEnabled (en) \'取得是否开启了Aero效果
        If en Then
            DwmExtendFrameIntoClientArea(sender.Handle, pMargins)
            sender.TransparencyKey = Color.FromArgb(250, 250, 2)
            sender.BackColor = sender.TransparencyKey
        End If
    End If
End Sub

[此贴子已经被作者于2016/1/28 15:47:59编辑过]

--  作者:大红袍
--  发布时间:2016/1/28 15:56:00
--  
说明白你的问题,你想问什么?做例子看看。
--  作者:zcgmxf
--  发布时间:2016/1/28 16:16:00
--  

用上面的代码可以使窗口边缘玻璃化。我现在不想用玻璃窗口了,删除了上面的代码,但是窗口玻璃边还是依然存在,在控制面板的个性化设置中设置好像没得用,该怎么办,谢谢!


--  作者:大红袍
--  发布时间:2016/1/28 16:21:00
--  

删除上面的代码,删除bin文件夹,重新打开项目看看是否正常。

 

不行的话,做个例子测试。