函数SetLayeredWindowAttributes
使用这个函数,可以轻松的实现半透明窗体。按照微软的要求,透明窗体窗体在创建时应使用WS_EX_LAYERED参数(用CreateWindowEx),或者在创建后设置该参数(用SetWindowLong),我选用后者。全部函数、常量声明如下:
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 Declare Function SetLayeredWindowAttributes Lib "user32" (ByVal hwnd As Long, ByVal crKey As Long, ByVal bAlpha As Byte, ByVal dwFlags As Long) As Long
其中hwnd是透明窗体的句柄,crKey为颜色值,bAlpha是透明度,取值范围是[0,255],dwFlags是透明方式,可以取两个值:当取值为LWA_ALPHA时,crKey参数无效,bAlpha参数有效;当取值为LWA_COLORKEY时,bAlpha参数有效而窗体中的所有颜色为 crKey的地方将变为透明--这个功能很有用:我们不必再为建立不规则形状的窗体而调用一大堆区域分析、创建、合并函数了,只需指定透明处的颜色值即可,哈哈哈哈!请看具体代码。
Private Const WS_EX_LAYERED = &H80000
Private Const GWL_EXSTYLE = (-20)
Private Const LWA_ALPHA = &H2
Private Const LWA_COLORKEY = &H1
代码一:一个半透明窗体
Private Sub Form_Load()
Dim rtn As Long
rtn = GetWindowLong(hwnd, GWL_EXSTYLE)
rtn = rtn Or WS_EX_LAYERED
SetWindowLong hwnd, GWL_EXSTYLE, rtn
SetLayeredWindowAttributes hwnd, 0, 200, LWA_ALPHA
End Sub
代码二:形状不规则的窗体
Private Sub Form_Load()
Dim rtn As Long
BorderStyler=0
rtn = GetWindowLong(hwnd, GWL_EXSTYLE)
rtn = rtn Or WS_EX_LAYERED
SetWindowLong hwnd, GWL_EXSTYLE, rtn
SetLayeredWindowAttributes hwnd, &HFF0000, 0, LWA_COLORKEY '将扣去窗口中的蓝色
End Sub
分享到:
相关推荐
在本文中,我们将深入探讨如何在VB中实现半透明窗体,并分享一个已调试通过的源码示例。 首先,理解VB窗体的透明性是如何工作的至关重要。在VB中,透明度是通过设置窗体的`Opacity`属性来控制的。`Opacity`属性的值...
vb制作半透明窗口,怎样制作vb的半透明窗口,含代码和窗体文件
在VB.NET编程环境中,开发人员有时需要实现一些高级的界面效果来提升用户体验,例如半透明窗体和非矩形窗体。本项目基于@浓情咖啡的原作进行了扩展,添加了一个半透明PNG图片逐渐消失的功能,同时也创建了一个非矩形...
透明窗体允许部分或全部背景透过窗体显示,这样可以实现各种视觉效果,比如浮动窗口、半透明窗口等。下面我们将详细探讨如何在VB6中实现这一功能。 首先,我们需要了解VB6中的窗体基本属性和方法。窗体的`BackColor...
1. **天气预报小工具**:使用半透明窗体展示天气预报信息,既不影响用户的桌面操作,又能实时查看天气情况。 2. **桌面时钟**:将时钟设计成完全透明的窗体,用户可以在查看时间的同时进行其他操作。 3. **悬浮提示...
下面将详细介绍如何在VB6.0中创建动态半透明窗体及其相关知识点。 1. **GDI+图形库的使用**: VB6.0默认不支持GDI+,但可以通过引入外部库(如GDIPlusLib.VBX)来利用GDI+的功能。GDI+提供了更强的绘图能力和半...
在VB(Visual Basic)编程环境中,创建动态半透明窗体是一项引人注目的技术,它可以使应用程序的界面更具视觉吸引力和交互性。动态半透明效果可以让用户透过窗体看到其背后的元素,为用户提供了一种新颖的用户体验。...
下面我们将详细介绍如何使用API函数来实现VB中的半透明窗体。 首先,我们需要了解几个关键的API函数: 1. `SetWindowLong`:这个函数用于修改窗口的属性,包括样式、额外风格等。在我们的案例中,我们需要修改WS_...
首先,透明窗体在VB中的实现主要依赖于API(应用程序接口)函数,特别是Windows API中的`SetLayeredWindowAttributes`函数。这个函数允许开发者对窗口进行透明度设置,包括颜色键和透明度级别。为了调用这个API,...
在VB(Visual Basic)编程环境中,创建半透明窗体是一个有趣...总的来说,VB半透明窗体ALPHAFORM的例子是一个极好的学习资源,它揭示了VB如何与底层操作系统进行交互,以及如何利用这些能力来增强应用程序的视觉表现。
以下是一个简单的VB代码示例,展示如何创建一个半透明窗体: ```vb Imports System.Runtime.InteropServices Public Class Form1 Private Const WS_EX_LAYERED As Integer = &H80000 Private Const LWA_ALPHA As...
本资源"VB半透明窗体源码.7z"包含了一个实现这种效果的简单示例,它不依赖任何第三方库,只使用了API函数,非常适合VB初学者学习。 在VB中,实现半透明效果通常涉及到Windows API调用,因为VB的标准库并没有直接...
标题与描述中的“vb半透明窗体设计”指的是在Visual Basic(简称VB)环境中,通过编程实现窗体的半透明效果。这涉及到Windows API函数的调用,特别是`SetLayeredWindowAttributes`函数,用于设置窗口的透明度属性。...
在VB中,透明效果可以让窗体的部分或全部区域变得半透明,从而使用户可以看到窗体后面的元素。 2. **设置窗体透明度** - **Alpha通道**: VB6及更早版本中,可以通过修改窗体的`BackColor`属性中的RGB值来实现透明...
在VB(Visual Basic)编程中,创建透明窗体是一个常见的需求,这主要涉及到窗口样式、绘图技术以及API调用等多个知识点。透明窗体可以使应用程序的界面更加美观,提升用户体验。接下来,我们将深入探讨如何在VB中...
用vb6实现半透明的窗体-源码(可以调节透明度),无需其他控件,利用模块和窗体代码来实现。
在VB6(Visual Basic 6)编程环境中,创建透明或半透明表单是一个常见的需求,尤其是在设计具有现代感和视觉效果的应用程序时。本资源提供了一组源代码,专门用于实现这种效果。以下是对这个主题的详细解释: 1. **...
6. 对于透明和异形效果,可以使用`e.Graphics.CompositingMode = CompositingMode.SourceCopy`,然后用`e.Graphics.FillRectangle(Brushes.Transparent, Me.ClientRectangle)`清空背景。 7. 最后,根据需要绘制窗体...
透明窗体可以使窗口背景部分变得半透明,但保持窗体上的控件清晰可见,这样可以实现某些特殊效果或者提供更美观的交互体验。在"VB透明窗体"这个主题中,我们将深入探讨如何实现这一功能,以及需要注意的一些关键点。...
总结起来,实现VB中的透明窗体和支持PNG图片及窗体发光效果,需要深入理解GDI+和Windows API的使用。这需要一定的编程基础和对图形渲染原理的理解。通过学习和实践,开发者可以创建出具有现代感和个性化的应用程序...