闪动标题栏

2008-02-23 07:19:29来源:互联网 阅读 ()

新老客户大回馈,云服务器低至5折

  在你的应用程序中,你可能会希望将应用程序的标题栏进行闪动,以提醒用户进行某种操作,本文介绍了如何使一个窗口的标题栏进行闪动。


  闪动一个窗口的标题栏意味着改变它的标题栏的外观,例如它从活动变为不活动,或是从不活动变为活动等等。只要你能在Delphi 或者 C Builder 中得到窗口的句柄,你就可以使用Windows 应用程序编程接口(API)函数来使该窗口的标题栏进行闪动。函数FlashWindows可以被用使一个特定的窗口闪动一次。 

  函数原形:

  function FlashWindow(const hwnd:Integer;const bInvert:LongBool):LongBool;

  该函数需要2个参数,第一个参数是要闪动标题栏的窗口的句柄,第二个参数用于指定是设置窗口的闪动状态,还是恢复其原始状态。如果该bInvert参数为True,则表明窗口的标题栏被闪动,如果该参数为False,则表明窗口的标题栏被恢复为原始状态。

  该函数所返回的值用于指定调用该函数前窗口的状态,如果该返回值True,则表明窗口在调用该函数之前是活动的,否则,如果返回值为False,则表明调用函数前窗口是非活动的。

  当使用该FlashWindow函数时,一个较好的方法是将标题栏闪动的频率设置为同脱字符(也即闪动的光标)相同,脱字符的闪动频率可以通过调用函数GetCaretBlinkTime来获得。要使用该函数,需要将如下的声明语句包含在你的窗体的通用声明部分中:

  function GetCaretBlinkTime:Integer;
该函数返回用毫秒值表示的时间。例程: 建立新的Project,并新建一From(包括New
Project建立的Form,共两个),在Form1中加入一Button和Timer,按下面的方法建立程序.
procedure TForm1.Button1Click(Sender: TObject);
begin
Form2.Show;
Form1.BringToFront;
Timer1.Interval:=GetCaretBlinkTime;
Timer1.Enabled:=Not Timer1.Enabled;
end;
procedure TForm1.Timer1Timer(Sender: TObject);
begin
FlashWindow(Form2.Handle,TRUE);
end;


上一篇: 制作类似WinAmp一样的“磁性”窗口
下一篇: 制作真正的TopMost窗口

标签:

版权申明:本站文章部分自网络,如有侵权,请联系:west999com@outlook.com
特别注意:本站所有转载文章言论不代表本站观点,本站所提供的摄影照片,插画,设计作品,如需使用,请与原作者联系,版权归原作者所有

上一篇:Spcomm串口控件的例程

下一篇:制作类似WinAmp一样的“磁性”窗口