VB窗体效果--淡化消失

来源:互联网 发布:什么排序算法最快 编辑:程序博客网 时间:2024/05/06 11:00

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

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

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

 
'透明实现Public Declare Function SetLayeredWindowAttributes Lib "user32" (ByVal hwnd As Long, ByVal crKey As Long, ByVal bAlpha As Byte, ByVal dwFlags As Long) As LongPublic Declare Function GetWindowLong Lib "user32" Alias "GetWindowLongA" (ByVal hwnd As Long, ByVal nIndex As Long) As LongPublic Declare Function SetWindowLong Lib "user32" Alias "SetWindowLongA" (ByVal hwnd As Long, ByVal nIndex As Long, ByVal dwNewLong As Long) As LongPublic Const WS_EX_LAYERED = &H80000Public Const GWL_EXSTYLE = (-20)Public Const LWA_ALPHA = &H2Public 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循环执行实现渐化窗体效果。直至消失然后卸载窗体。

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

原创粉丝点击