首页 > C/C++开发工具专区 > VC技术 > (一)闪烁程序的标题栏
2006
01-23

(一)闪烁程序的标题栏

 在某些专业的应用程序中,当程序需要提醒用户或要引起用户的注意时,就不停地闪烁程序的标题栏。要实现这个功能,只需要一个Timer组件和使用一个API函数--FlashWindow。

  使用API函数FlashWindow可以闪烁显示指定窗口,让窗口在活动与非活动的状态之间切换,它有两个参数:hwnd和bInvert,头文件为“winuser.h”。其中,参数hwnd为要闪烁的窗口句柄,参数bInvert是一个bool变量,设为true时,程序窗口标题栏从活动切换到非活动状态、或反向切换,当设为false时,窗口标题栏还原为最初的状态。如果配合一个时间组件(Timer组件),以一定的时间间隔执行语句:

FlashWindow(Form1->Handle,true);

程序窗口的标题栏就在活动、非活动的状态之间不停地切换。若把hwnd指定成为应用程序的句柄(Application->Handel),将会闪烁程序在任务栏上的标题栏。

  下面就让我们来做一个闪烁窗口标题栏和任务栏上标题栏的程序。

  首先,在Form1中添加三个按钮Button1、Button2和Button3,把它们的属性分别为“闪烁窗口标题栏”、“闪烁任务标题栏”和“停止闪烁”,再加入两个时间组件Timer1和Timer2,将两个Timer组件的Enabled属性都设为false,将Interval属性都设为为500(即半秒),改变这个属性的值可以修改闪烁的频率。

  然后双击Timer1,在OnTimer事件中加入:

FlashWindow(Form1->Handle,true);

  双击Timer2,在OnTimer事件中加入:

FlashWindow(Application->Handel,true);

  双击Button1,在Button1的OnClick事件中加入:

Timer1->Enabled=true;

  双击Button2,在Button2的OnClick事件中加入:

Timer2->Enabled=true;

  最后双击Button3,在Button3的OnClick事件中加入:

Timer1->Enabled=false;

Timer2->Enabled=false;

FlashWindow(Form1->Handle,false);

FlashWindow(Application->Handel,false);

  这样一个简单的例子就完成了。按F9编译运行程序,你就可闪烁窗口标题栏或是闪烁任务栏上的标题栏了。


留下一个回复