是否可以创建一个半透明的窗体,它应该在任何打开的窗口中可见,而不是隐藏在后面?请指导!使用VB6的半透明窗体
回答
当然,看到卡尔·彼得森的“半透明”的例子:http://vb.mvps.org/samples/Translucent/
为了保持在其他窗口可见的形式,你想使用SetWindowPos API函数。
Private Declare Function SetWindowPos Lib "user32" (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 Const HWND_TOPMOST = -1
Private Const SWP_NOMOVE = &H2
Private Const SWP_NOSIZE = &H1
Private Const OnTopFlags = SWP_NOMOVE Or SWP_NOSIZE
Public Sub FormOnTop(frm As Form)
Call SetWindowPos(frm.hWnd, HWND_TOPMOST, 0&, 0&, 0&, 0&, OnTopFlags)
End Sub
对不起,但没有帮助。我从提供的链接下载了代码并粘贴了Joe提供的代码。但是如果有新窗口,说任何浏览器打开,它都隐藏在浏览器窗口后面。 – 2010-09-01 20:02:16
GSerg - 我搜索谷歌的代码,但只发现代码,使窗体半透明不是我想要的。透明的所有窗口不隐藏类似于带宽仪表,其中图形显示在浏览器窗口。 – 2010-09-01 20:05:48
我会看看我再次发布的示例和代码;你可以在你的项目中使用CTranslucent类,并且只需要在你想要的任何form_load上调用透明度。同样在form_load上,使用Me对象调用FormOnTop函数,即“Call FormOnTop(Me)” – 2010-09-01 20:34:55
'function to make transparent'
Private Declare Function SetLayeredWindowAttributes Lib "user32" (ByVal hwnd As Long,ByVal crKey As Long, ByVal bAlpha As Byte, ByVal dwFlags As Long) As Long
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 Const G = (-20)
Private Const LWA_COLORKEY = &H1 'to trans'
Private Const LWA_ALPHA = &H2 'to semi trans'
Private Const WS_EX_LAYERED = &H80000
Private Sub Form_Activate()
Me.BackColor = vbBlue
Trans 1
End Sub
Private Sub Trans(Level As Integer)
Dim Msg As Long
Msg = GetWindowLong(Me.hwnd, G)
Msg = Msg Or WS_EX_LAYERED
SetWindowLong Me.hwnd, G, Msg
SetLayeredWindowAttributes Me.hwnd, vbBlue, Level, LWA_COLORKEY
End Sub
- 1. 半透明窗体形式
- 2. C#WF半透明窗体
- 3. C# - 使窗体移动时半透明
- 4. OpenGL的透明/半透明
- 5. 如何使字体与Irrlicht半透明?
- 6. 使用半透明UINavigationBars
- 7. C#透明窗体
- 8. 窗体的透明背景(Windows窗体)
- 9. 半透明AppWidget?
- 10. 半透明NSView
- 11. 模糊半透明窗体的背景(如Aero玻璃)
- 12. 在wxwidgets中绘制半透明窗口
- 13. Visual Studio 2010 - 半透明浮动窗口
- 14. xlib半透明窗口背景
- 15. 如何使透明框内的窗体(iframe)不透明?
- 16. 如何使JTextField半透明
- 17. 如何在Visual Basic窗体中创建半透明效果?
- 18. 如何创建Microsoft Office 2010 TP等半透明Windows窗体?
- 19. OpenGL半透明固体没有折射?
- 20. 半透明物体渲染顺序
- 21. 透明窗体背景HTML
- 22. C#设计透明窗体
- 23. 带半透明(半透明)带的绘制路径
- 24. QML:如何创建半透明/半透明的WebView元素?
- 25. 半透明光标
- 26. 透明或半透明面板控制
- 27. 如何使用wxpython创建半透明/透明矩形?
- 28. 如何使子窗体透明?
- 29. 半透明的PictureBox c#
- 30. 在Visual Studio窗体窗体的面板上使用不透明度的技巧?
@GSerg第一款谷歌命中很可能是不可靠的代码,特别是因为它有必要调用Windows API。以下接受的答案引用了优秀网站的高质量代码。 – MarkJ 2010-09-02 08:55:24