怎样实现QQ中左边的栏的HotTrack效果,好像要用到掩图技术,在QQ的Skins目录下有ButtonA1..4四个图片文件,其中ButtonA1是底图,Button4是掩图,掩图中有六种颜色(6个图像选择区域),RGB值分别为
     R    G    B
红   FF   00   00
黄   FF   FF   00
绿   00   FF   00
洋红 FF   00   FF
青   00   FF   FF
黑   00   00   00 我想应该是用掩图来取ButtonA2/ButtonA3的图像部分,再与ButtonA1进行某些操作来实现HotTrack效果,一直没做出来,请高手赐教。  喜欢上大富翁的朋友,可以看看这个问题的源出处(200分):
http://www.delphibbs.com/delphibbs/dispq.asp?lid=2844643

解决方案 »

  1.   

    就是不知道怎么画呀,要用到张掩图来跟别的图片叠加,可做不出效果来,楼上可不可以帮我试一下,图片文件在QQ的skinks目录下有,谢谢!
      

  2.   

    你可以把这些图片放在一个TImageList里面,在Form的OnMouseMove中判断鼠标的位置,如果在指定的位置(比如按钮的区域内),则使用TImageList的Draw方法,把图片画在该位置上,就Ok啦。
      

  3.   

    晕,这就看你做图片的方法了啊,在不需要变化的地方,所有的图片上都与背景一致就可以了。这样任何不规则形状的都没有问题。比如(不贴图了,以字符举例):假设背景为字符“O”,三个图片设置成:通常:OOOOOOOO
    OOOOOOOO
    OOOOOOOO
    OOOOOOOO
    OOOOOOOO
    OOOOOOOO压下:OOOOOOOO
    OOO111OO
    OO1111OO
    OOO111OO
    OOO1110O
    OOOOOOOO高亮OOOOOOOO
    OOO111OO
    OO1101OO
    OOO101OO
    OOO1110O
    OOOOOOOO
      

  4.   

    为什么总会跑题呢,我的问题很清楚,就是要用QQ里的ButtonA1...ButtonA2做QQ那种效果,不管用什么办法,只要能实现就可以。to PoolID:
     用你的方法,请写出个例子,只需要把ButtonA3的第一个图像加到ButtonA1相应位置即可,要求ButtonA1除了第一个图像变化外,其它地方不变,谢谢!
      

  5.   

    呵呵,晕。我觉得已经说得很清楚了,可能你还没从叠加或者掩模的胡同里走出来。我告诉你的方法,不需要作这类的操作,只需要把图像画在相应的位置就可以了。画图像的方法很简单,我在上面已经说过了。制造这种效果的要点不在代码而在图片上,明白吗?你只要把你的“不规则图片”与外接矩形之间的间隙都用与背景相同的颜色或图案填满就可以了。这样将这个矩形的图片画上去之后,边上这些多余的部分与背景看起来是一致的,如此就可以制造出你需要的视觉效果。想要例子的话,留mail给我,我给你简单写一个发过去吧。
    拿到例子就结贴,这里的100分和大富翁的500分我都要。OK?不过估计实现之简单,会让你很失望的。呵呵。
      

  6.   

    分不是问题,得到正确答案后,我立即结贴,全部分归你。换个提问的方式(我的本意):
      用QQ本身的四个图片文件ButtonA1..A4作为QQ左边栏的效果!!!  制作图片不是我考虑的事,即然QQ能用那四张图片作出来这种效果来,我想一定有它的方法,不要再告诉我怎样制作图片,不管需不需要掩图技术,只要能做出来就可以!  PoolID,把你的例子先发到 [email protected] 谢谢!
      

  7.   

    可以发给我看看吗?
    [email protected]
      

  8.   

    不就是 3 张图片 变化吗?没发现mask