VB窗体效果--淡化消失

过了年笔者要从一个售后技术人员走向前台走向客户中去了,公司决定让我过完节转销售部。我也不晓得其中有什么“猫腻”只知道拿该拿的钱,干该干的事。

好了废话少说,说下今天要写的内容。东西很简单,这是因为笔者也很简单,没有什么高深的技术拿出来分享,只好把日常觉得不错的东西记录下来与诸君共勉。

笔者也不记得在个系统中见到的,整个系统中的窗体退出,不是windows这种很生硬的‘刷’一下就消失了,而是很柔和的渐渐的消失,这样一个不起眼的效果,就会给用户带来不一样的视觉感观。今天笔者突发兴致想试一下,结果只能说还不错。下面上代码:

 
'透明实现
Public Declare Function SetLayeredWindowAttributes Lib "user32" (ByVal hwnd As Long, ByVal crKey As Long, ByVal bAlpha As Byte, ByVal dwFlags As Long) As Long
Public Declare Function GetWindowLong Lib "user32" Alias "GetWindowLongA" (ByVal hwnd As Long, ByVal nIndex As Long) As Long
Public Declare Function SetWindowLong Lib "user32" Alias "SetWindowLongA" (ByVal hwnd As Long, ByVal nIndex As Long, ByVal dwNewLong As Long) As Long


Public Const WS_EX_LAYERED = &H80000
Public Const GWL_EXSTYLE = (-20)
Public Const LWA_ALPHA = &H2
Public Const LWA_COLORKEY = &H1

'此SUB放在窗体中直接调用即可
'Public Sub tmStyle()

    'Dim rtn As Long
        
    'rtn = GetWindowLong(hwnd, GWL_EXSTYLE)
        
    'rtn = rtn Or WS_EX_LAYERED
        
    'SetWindowLong hwnd, GWL_EXSTYLE, rtn
        
    'SetLayeredWindowAttributes hwnd, 0, 230, LWA_ALPHA
    
'End Sub

 

上部是做透明效果的函数,

诸君请看

'SetLayeredWindowAttributes hwnd, 0, 230, LWA_ALPHA

第三个参数是决定窗体透明度的数值区间 0 - 255

放一个TIMER控件,timer事件中, 从255递减一个数值(自己设定,我用的10)然后用SetLayeredWindowAttributes循环执行实现渐化窗体效果。直至消失然后卸载窗体。

是不是很简单,快去试试吧。

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 2
    评论
评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值