NIF_TIP; //指定以下三个参数哪个包含有效数据
if (dwMessage == NIM_MODIFY)
{
tnd.hIcon = (HICON)IconHandle(); //取得图标句柄
if (pszTip) lstrcpyn(tnd.szTip, pszTip, sizeof(tnd.szTip)); else tnd.szTip[0] = '\0';
}
else
{
tnd.hIcon = NULL; tnd.szTip[0] = '\0';
}
return (Shell_NotifyIcon(dwMessage, &tnd));
}
编制取得图标句柄的函数
HICON __fastcall TForm1::IconHandle(void)
{
if (n==1)
{
return (Image1- >Picture->Icon- >Handle); //n是全局变量,1为显示Image1,0为Image2
}
else
{
return (Image2- >Picture- >Icon- >Handle);
}
}
编制图标状态转换函数
void __fastcall TForm1::ToggleState(void)
{
if (n==1) //n为图标句柄锁,是全局变量, 1为显示Image1,0为Image2
n=n-1;
else n=n+1;
TrayMessage(NIM_MODIFY); //发送图标变换消息
}
对Timer控件编制代码,设它的Interval 属性为1000,即定时器每一秒响应一次。为 Ontimer 事件键入代码:
void __fastcall TForm1::Timer1Timer(TObject *Sender)
{
ToggleState( );
}
由于篇幅有限,以上只列出了基本部分的代码,其他功能的实现,如关闭程序,打开窗口等,比较简单,不在赘述。程序运行时,你将看到在屏幕的右下角任务栏有一扇门打开又关闭的动画图标。是不是很有趣,快编一个你喜欢的吧。
关键词:C++ Builder让你的任务栏图标动起来