实现超级链接效果新法

Author: 吕祖德 Date: 2001年 44期

?牐犜凇兜缒员ā返?39期B6版中,有一个关于实现超级链接效果的好东东,笔者看了以后赶紧试了一下!运行之后发现,鼠标快速划过这些按钮时,竟然有好几个按钮变色而不能返回!仔细研究了一下,终于发现了比较好的解决办法,现介绍如下:
  ?牐牨收哂玫氖荂++ Bbuilder,C++ Builder和Delphi中都有的一个TFont对象。改变窗体对象字体的显示效果,其实就是改变该窗体对象包含的TFont对象的属性。下面我们就利用TFont来实现超级链接的效果。
  ?牐犜诖疤宓耐肺募猩饕桓鏊接卸韵蠛鸵桓鏊接泻?:
  ?牐燭Font *oldfont;
  ?牐爒oid _fastcall changefontcolor(TFont *Sender);?牔?
  ?牐牭ピ募卸ㄒ逭飧龊?:
  ?牐爒oid _fastcall examp::changefontcolor(TFont *Sender)??
  ?牐爗if (!oldfont==NULL))?牐?
  ?牐爗oldfont->Color=clWindowFrame;??
  ?牐爋ldfont->Style=TFontStyles();}?煟牔? ??
  ?牐?//这一个判断是必需的,否则当你首次调用这个函数时,会因为oldfont无指向而造成程序错误。
  ?牐爋ldfont=Sender;
  ?牐燬ender->Color=clBlue;
  ?牐燬ender->Style=TFontStyles()<<fsBold<<fsUnderline;}?牓?
  ?牐牭比荒阋部梢园颜飧龊ㄒ宄赡诹╥nline)的。
  ?牐犎缓笤诳丶腛nMouseMove中调用这个函数就可以了,下面是调用的例子:
  ?牐燾hangefontcolor(CBuilder_SpeedButton->Font);
  ?牐犠詈笤诖疤宓腛nMouseMove写上下面的语句就可以了:
  ?牐爄f (!oldfont==NULL))?牐?
  ?牐爗oldfont->Color=clWindowFrame;??
  ?牐爋ldfont->Style=TFontStyles();}?煟牔牓?
  ?牐犠詈蠼每丶蟊甑闹刚敫奈猚rHandPoint就可以了。