以文本方式查看主题

-  计算机科学论坛  (http://bbs.xml.org.cn/index.asp)
--  『 C/C++编程思想 』  (http://bbs.xml.org.cn/list.asp?boardid=61)
----  闪烁程序的标题栏  (http://bbs.xml.org.cn/dispbbs.asp?boardid=61&rootid=&id=37083)


--  作者:卷积内核
--  发布时间:8/22/2006 1:35:00 PM

--  闪烁程序的标题栏

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


--  作者:四个冬季
--  发布时间:8/27/2006 5:45:00 PM

--  
不知道是在哪个编程软件下的啊?

--  作者:卷积内核
--  发布时间:8/28/2006 8:11:00 AM

--  
上面源码是VB下的,VC里也有FlashWindow函数,这是个API,很容易改为VC的。这里最主要的是提供一种编程思想。
W 3 C h i n a ( since 2003 ) 旗 下 站 点
苏ICP备05006046号《全国人大常委会关于维护互联网安全的决定》《计算机信息网络国际联网安全保护管理办法》
46.875ms