在某些专业的应用程序中,当程序需要提醒用户或要引起用户的注意时,就不停地闪烁程序的标题栏。要实现这个功能,只需要一个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编译运行程序,你就可闪烁窗口标题栏或是闪烁任务栏上的标题栏了。
>> 本文固定链接: http://www.vcgood.com/archives/433