热情软件屋

 

如何使窗口透明


编号:QA000129
建立日期: 1998年11月23日 最后修改日期:2001年4月24日
所属类别:

snowgirl:
    如何编一个窗口,使窗口透明,露出墙纸或下面的窗口。(其中的文字图象照显不误)

回答:

    为了便于观察,先在窗口上添加两个按钮,Command1和Command2。加上如下代码:
    Private Sub Command1_Click()
     Print "Hello"
    End Sub
    
    Private Sub Command2_Click()
     End
    End Sub
    这两个按钮一个用于终止程序运行,一个用于显示文字。
    然后,将Form的Border设为None。
    最后,在Form的声明部分加上以下代码:
    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 SetParent Lib "user32" (ByVal hWndChild _
    As Long, ByVal hWndNewParent As Long) As Long
    Const WS_EX_TRANSPARENT = &H20&
    Const GWL_EXSTYLE = (-20)
    最后,在Form中加上如下代码。
    Private Sub Form_Load()
     SetWindowLong hwnd, GWL_EXSTYLE, WS_EX_TRANSPARENT
    End Sub
    
    zttjhm问:
    我看了一下,你们关于透明窗体的编法,不过 想编一个真正透明的窗体,意思是当窗体移动时,仍然可以看见下面的东西,而不是给人一种视觉上的透明效果,比如:我在播放视频时,我有一个窗体在上面,如果用你们的做法,将无法看见视频图象(在窗体比视频图象区大的情况下),如何才能做到真正的透明?
    答:上面的这种透明窗体的做法已经过时了。对于你的要求你可以使用QA000260 "是否有改变Form外形(如圆形)的方法"的方法,也就是建立异形窗口。
    
    相关问题:
    QA002739 "Delphi中如何做透明的窗体"
    QA003213 "用Win2000新的API函数制作透明窗口"

此问题由李海回答。

 
把这个问题推荐给朋友
   
   
您的意见类别
您的名字
您的电子邮件
您的建议(请尽可能详细)
 
 

版权所有 1997-2008 热情软件屋
如果您有任何建议和意见, 请给我发个电子邮件 askpro@china-askpro.com
Web Designed by ZebraStudio