在VB中实现闪动标题栏

科仔10

科仔10

2016-02-19 20:15

今天图老师小编给大家展示的是在VB中实现闪动标题栏,精心挑选的内容希望大家多多支持、多多分享,喜欢就赶紧get哦!
摘要
  在你的应用程序中,你可能会希望将应用程序的标题栏进行闪动,以提醒用户进行某种操作,本文介绍了如何使一个窗口的标题栏进行闪动。
  
  闪动标题栏
  闪动一个窗口的标题栏意味着改变它的标题栏的外观,例如它从活动变为不活动,或是从不活动变为活动等等。只要你能在VisualBasic中得到窗口的句柄,你就可以使用Windows应用程序编程接口(API)函数来使该窗口的标题栏进行闪动。函数FlashWindows可以被用使一个特定的窗口闪动一次。要使用该函数,需要将如下的声明语句包含在你的窗体的通用声明部分中:
  
  #IfWin32Then
  DeclareFunctionFlashWindowLib"user32"(ByValhwndAsLong,ByValbInvertAsLong)AsLong
  #Else
  DeclareFunctionFlashWindowLib"User"(ByValhwndAsInteger,ByValbInvertAsInteger)AsInteger
  #EndIf
  
  该函数需要2个参数,第一个参数是要闪动标题栏的窗口的句柄,第二个参数用于指定是设置窗口的闪动状态,还是恢复其原始状态。如果该bInvert参数非0,则表明窗口的标题栏被闪动,如果该参数为0,则表明窗口的标题栏被恢复为原始状态。该函数所返回的值用于指定调用该函数前窗口的状态,如果该返回值非0,则表明窗口在调用该函数之前是活动的,否则,如果返回值为0,则表明调用函数前窗口是非活动的。当使用该FlashWindow函数时,一个较好的方法是将标题栏闪动的频率设置为同脱字符(也即闪动的光标)相同,脱字符的闪动频率可以通过调用函数GetCaretBlinkTime来获得。要使用该函数,需要将如下的声明语句包含在你的窗体的通用声明部分中:
  
  #IfWin32Then
  DeclareFunctionGetCaretBlinkTimeLib"user32"()AsLong
  #Else
  DeclareFunctionGetCaretBlinkTimeLib"User"()AsInteger
  #EndIf
  
  该函数返回用毫秒值表示的时间。
  
  样例程序
  
  1.在VisualBasic中开始一个新的工程,采用缺省的方法建立Form1。
  2.在Form1上添加一个定时器控件,采用缺省的方法建立Timer1。
  3.将如下的代码添加到Form1的Form_GotFocus事件中:
  
  PrivateSubForm_GotFocus()
  Timer1.Enabled=False
  EndSub
  4.将如下的代码添加到Form1的Form_Load事件中:
  
  PrivateSubForm_Load()
  Timer1.Interval=GetCaretBlinkTime()
  Form2.Show
  EndSub
  
  5.将如下的代码添加到Timer1的Timer1_Timer事件中:
  
  PrivateSubTimer1_Timer()
  Success=FlashWindow(Form1.hwnd,1)
  EndSub
  
  6.添加第二个窗体,采用缺省的方法建立Form2。
  
  7.将如下的代码添加到Form2的单击事件中:
  
  PrivateSubForm_Click()
  Form1.Timer1.Enabled=True
  EndSub
  
  8.添加一个新的模块,采用缺省的方法建立Module1.Bas。将如下的代码添加到该模块的通用声明部分中:
  
  #IfWin32Then
  DeclareFunctionFlashWindowLib"user32"(_
  ByValhwndAsLong,_
  ByValbInvertAsLong)AsLong
  
  DeclareFunctionGetCaretBlinkTimeLib"user32"()AsLong
  
  DimSuccessAsLong
  
  #Else
  
  DeclareFunctionFlashWindowLib"User"(_
  ByValhwndAsInteger,_
  ByValbInvertAsInteger)AsInteger
  
  DeclareFunctionGetCaretBlinkTimeLib"User"()AsInteger
  
  DimSuccessAsInteger
  
  #EndIf
  
  通过单击F5键来运行该样例程序,单击Form2窗体,这时Form1窗体将处于非活动方式,其标题栏将会不断闪烁。单击Form1使它它变为活动方式,则窗体的标题栏将不再闪烁->

展开更多 50%)
分享

猜你喜欢

在VB中实现闪动标题栏

编程语言 网络编程
在VB中实现闪动标题栏

闪动标题栏

Delphi
闪动标题栏

s8lol主宰符文怎么配

英雄联盟 网络游戏
s8lol主宰符文怎么配

在VB中实现移动没有标题栏的窗口

编程语言 网络编程
在VB中实现移动没有标题栏的窗口

在Authorware中实现自定义标题栏

设计软件 平面设计软件 广告设计软件
在Authorware中实现自定义标题栏

lol偷钱流符文搭配推荐

英雄联盟 网络游戏
lol偷钱流符文搭配推荐

DBGridEh实现单击标题栏排序方法

编程语言 网络编程
DBGridEh实现单击标题栏排序方法

怎样在Web开发中完美控制IE标题栏

Web开发
怎样在Web开发中完美控制IE标题栏

lolAD刺客新符文搭配推荐

英雄联盟
lolAD刺客新符文搭配推荐

用VisualBasic也可以实现P2P

用VisualBasic也可以实现P2P

Linux下使用xfs时提示没有磁盘空间的情况该如何处理

Linux下使用xfs时提示没有磁盘空间的情况该如何处理
下拉加载更多内容 ↓