金桥科普  
设为首页 关于我们 邮箱登录
科普聚焦时代科技科普生活科学技术自然科学航空航天科技博览历史考古电脑IT
您现在的位置: 首页 >> 科普频道 >> 技巧实践 >> 文章详情
让标题栏能玩特技效果

马致明 中国电脑教育报 2001-09-06

    绝大多数软件都少不了标题栏,若能给它添加一些特技,利用视觉效果来吸引用户,那将会给软件增色不少。笔者经过反复实践,探索出四类八种标题栏特技。这些方法适用于各种可视化编程工具,现以VB为例,将其介绍给各位编程爱好者。

    滚动篇

    1、右滚动

    在Timer事件中,利用Space函数在标题栏正文(以下简称为正文)前不断添加空格,使正文不断向右移动;当移出视线后,使正文前的空格数为0,这样又可以从左边推入,推入时用Right函数逐个截取正文右边的字符,达到渐入的效果。

    2、左滚动

    先在正文前加足N个空格,使正文刚好呈现在标题栏以外(假定正文字符数为M);然后在Timer事件中,用Right函数依次截取右边的N+M-1、N+M-2、N+M-3、…2、1个字符作为标题内容,这样便形成向左移动的效果;此后,再加足N个空格,重复以上动作。

    伸缩篇

    1、右伸缩

    正文前始终无空格。在Timer事件中,给正文每两个字符间不断添加空格,形成向右伸出的效果;达到一定程度后又不断减去空格,再形成缩回的效果。

    2、左伸缩

    与上述方法类似,在Timer事件中,给正文每两个字符间不断添加空格,达到一定程度后又不断减去空格;但正文第一个字符前也要添加空格,并保证此空格数与添加空格后的正文字符数加起来始终等于标题栏能容纳的字符数,这样就可实现标题向左伸缩的效果。

    3、向两侧伸缩

    与上述方法类似,只是控制好正文第一个字符前的空格数即可。

    闪烁篇

    1、背景闪烁

    调用API函数FlashWindow使窗体在激活与非激活状态之间切换,使标题栏的背景色在灰色和蓝色之间变换,从而达到背景闪烁的目的。该函数有两个参数:窗体句柄(hwnd,由窗体的hwnd属性提供)及闪烁标志(bInvert)。如果bInvert为非零值,该函数每调用一次,窗体的状态就切换一次;如果bInvert为零,则窗体一直处于激活状态,并不闪烁。所以,为了实现持续闪烁,应在Timer事件中以“FlashWindow Me.hwnd,1”方式反复调用该函数。

    2、正文闪烁

    在Timer事件中反复切换正文,使之在空标题与指定标题之间变换即可。

    动画篇

    图标是标题栏的脸面。选好一组内容相近的图标(如下面范例程序中所用的有关火星的8幅图标),在Timer事件中,用LoadPicture函数不断改变窗体的Icon属性,从而达到动画效果。

    范例程序

    因篇幅所限,这则程序给出了6种特技效果。程序中作了详细的注释,为了简化程序代码,多次用到IIf函数,它可将5行的If-Else-EndIf结构缩减为1行。

    1、窗体设置

    窗体上设置一个定时器控件Timer1,用于控制特技的节奏,其Interval属性设置成100;并排设置具有6个元素的命令钮数组Command1,标题依次取为:图标动画、标题闪烁、标题滚动、标题右伸缩、标题左伸缩、向两侧伸缩。

    2、程序代码

Dim It As Byte

′按下命令按钮的索引号

Dim Cap As String 

′标题栏文字内容

Dim L As Integer

′标题栏能容纳的字符数

Private Sub Form_Load()

Form1.ScaleMode = Character

L = Form1.ScaleWidth - 10

End Sub

Private Sub Command1_Click(Index As Integer)

It = Index

Cap = Command1(It).Caption 

′ "窗体标题特技"

Form1.Caption = Cap

Timer1.Enabled = True ′特技开始

End Sub

Private Sub Timer1_Timer()

Dim A As String 

′动态呈现在标题栏中的文字

Static N As Byte ′要变换的图标名称

Static Flash As Boolean ′控制标题闪烁与否

Static Back As Boolean′控制标题的伸与缩

Static Q As Byte

′标题栏文字前面的空格数

Static H As Byte

′标题栏文字后面的空格数

Select Case It

Case 0 ′选图标动画

N = IIf(N 〉= 8, 1, N + 1)

Form1.Icon=LoadPicture(App.Path+"" && N && ".ico")

Case 1 ′选标题闪烁

Flash = Not Flash

Form1.Caption = IIf(Flash, Cap, "")

Case 2 ′选标题滚动

Q = IIf(Q 〉= L, 0, Q + 1) ′前空格数

A = Right(Cap, Q) ′从右边截取

Form1.Caption = Space(Q) + A

′加前空格

Case Else′选伸缩

H = IIf(Back, H - 1, H + 1)′后空格数

If H 〉 5 Or H 〈 1 Then Back = Not Back

A = ""

For k = 1 To Len(Cap)

′字符间加空格

A = A + Mid(Cap, k, 1) + Space(H)

Next k

A = RTrim(A)

′去掉右边多余的空格

Select Case It

Case 3

′选右伸缩

Form1.Caption = A

Case 4

′选左伸缩

Form1.Caption = Space(L - Len(A))+ A

Case 5

′选中心伸缩

Form1.Caption=Space(L/2-Len(A)/2)+A

End Select

End Select

End Sub
  发表评论 写信给编辑 关闭窗口
同栏目内容
· 让你的电脑启动画面绚起来 2007-09-12
· 小技巧帮大忙 极点五笔 2007-09-05
· 如何提高迅雷的下载速度? 2007-09-03
· Vista小技巧 消除红眼 2007-09-03
· 千千静听实用小功能 2007-08-29
· Windows 自动登陆的简单方法 2007-08-20
相关内容
近期主推
我国首架自主产权飞机完成
·我国首架自主产权飞机完成
·机器人版"千手观音"惊艳亮相
·西藏发现青藏高原最大冰川群
·中日: "月亮女神"携手"嫦娥"
·行星大碰撞砸死恐龙催生人类
·美研制会飞汽车定价9万美元
近期热门
科学家解开中子星爆发之谜
·科学家解开中子星爆发之谜
·英海域惊现大龙虾为普通龙虾5倍
·新物种金蛙体表有剧毒
·我国嫦娥工程计划测量月球
·精神病药物可治多种癌症
·视觉震撼:来自海底的精灵
近期焦点
美国发现极其罕见的白化银鲛(图)
·美国发现极其罕见的白化银鲛(图)
·美国展出罕见连体双胎双头龟
·波罗的海发现罕见短吻真海豚
·能帮你做大扫除的机器人[组图]
·法老墓3000年前坚果保存完好
·广西发现罕见溶洞钟乳石有30万年
金桥科普是一个公益性栏目,内容由作者提供或摘自互联网,其目的是向广大网民普及科学技术知识。如果您发现本网站转载或摘编了您拥有著作权的作品,请通知我们(电话:023-63659911),我们立即删除。
关于我们 | 网站地图 | 用户注册 | 广告客户 | 招聘信息 | 业务信息
Copyright@2006-2009 JQInfo.com,WONDER. All Rights Reserved
重庆科技咨询中心.重庆网得信息技术有限公司.版权所有
Email:webmaster@jqinfo.com
重庆数据通信局提供网络带宽. 渝ICP备05002327号