首页 > 开发 > 综合 > 正文

浅谈如何利用PB实现树型列表动态半透明提示(三)(原创)

2024-07-21 02:10:10
字体:
来源:转载
供稿:网友

作者:balloonman2002  2004年6月26日

三、半透明效果实现

1、创建一个可视user object对象,并在主窗口中创建该uo的实例变量。

2、声明本地外部函数:

function ulong getdc(ulong hwnd) library "user32.dll"

function ulong bitblt(ulong hdestdc,ulong x,ulong y,ulong nwidth,ulong nheight,ulong hsrcdc,ulong xsrc,ulong ysrc,ulong dwrop) library "gdi32.dll"

function ulong releasedc(ulong hwnd,ulong hdc) library "user32.dll"

function ulong createcompatibledc(ulong hdc) library "gdi32.dll"

function ulong createcompatiblebitmap(ulong hdc,ulong nwidth,ulong nheight) library "gdi32.dll"

subroutine sleep(ulong dwmilliseconds) library "kernel32.dll"

function ulong selectobject(ulong hdc,ulong hobject) library "gdi32.dll"

function ulong alphablend(long hdestdc , long x, long y , long nwidth , long nheight, long hsrcdc,long xsrc,long ysrc, long widthsrc, long heightsrc ,long dreamaka ) library "msimg32"

function ulong deletedc(ulong hdc) library "gdi32.dll"

function ulong getsystemmetrics(ulong nindex) library "user32.dll"

subroutine  copymemory2  (ref long destination , blendfunction source, long length)  library "kernel32"  alias for "rtlmovememory"

function ulong deleteobject(ulong hobject) library "gdi32.dll"

3、处理主窗口的timer事件,用于定期触发提示信息:

long ll_x,ll_y

if ii_tip > 0 then

    if ib_tipshow then

        ib_tipshow = false

        iuo_tips.hide()

        timer(0)

    else

        ib_tipshow = true

   

        ll_x = w_main.pointerx() + 50

        ll_y = w_main.pointery()  - iuo_tips.height - 5

       

        if ll_y < 2 then

            ll_y = 2

        end if

   

        //wf_maketrans(iuo_tips,iuo_tips.mle_1,il_x,il_y,50)

        wf_maketrans(iuo_tips,iuo_tips.mle_1,ll_x,ll_y,40)

//上述函数是用于实现半透明效果的函数

        timer(6)

    end if

end if
发表评论 共有条评论
用户名: 密码:
验证码: 匿名发表