我爱Aspx >> C#.Net >> 编写C#程序实现动态系统托盘图标//
InitializeComponent();
//
// TODO: Add any constructor code after InitializeComponent call
//
m_bFlag=true;
m_bShowWnd=true;
try
{
m_Icon1 = new Icon("Icon1.ico");//导入图标文件
m_Icon2 = new Icon("Icon2.ico");
}
catch ( Exception e )
{
MessageBox.Show("Error " + e.Message,"Animate Tray - Error");
menuItem2.Enabled = false;
menuItem3.Enabled = false;
}
}
添加menuItem1、menuItem2、menuItem3、m_trayIcon的Click事件,消息处理函数如下:
private void menuItem1_Click(object sender, System.EventArgs e)
{
timer1.Start();//打开计时器
}
private void menuItem2_Click(object sender, System.EventArgs e)
{
timer1.Stop();//停止计时器
}
private void menuItem3_Click(object sender, System.EventArgs e)
{
Application.Exit();//退出应用程序
}
private void m_trayIcon_Click(object sender, System.EventArgs e)
{
if(m_bShowWnd == true)//隐藏主界面
{
this.Visible = false;
m_bShowWnd = false;
}
else//显示主界面
{
this.Visible = true;
m_bShowWnd = true;
}
}
最后还要添加timer1的Tick()函数:
private void timer1_Tick(object sender, System.EventArgs e)
{
if ( m_Icon1 != null && m_Icon2 != null ) //如果两个图标文件都被正确载入
{
//只要timer1被启动,则在两个图标之间不断进行选择变换,实现动画效果
if ( m_bFlag == true )
{
m_trayIcon.Icon = m_Icon2;
m_bFlag = false;
}
else
{
m_trayIcon.Icon = m_Icon1;
m_bFlag = true;
}
}
}
按Ctrl+F5试试效果!
运行程序,将显示一个主窗口,此时还可以看到在任务栏上面多了一个图标。当鼠标移到其上停留一下时,将显示一个简单的提示信息,点击该图标则将隐藏主窗口,单击右键,出来一个菜单,选"动画图标开始"和"动画图标结束"可以控制图标状态。
四.总结:做完这个程序,我们不难发现用C#做一些运用程序效果是非常方便的。以前我在SDK、MFC下,用到了Shell_NotifyIcon()、TrackPopMenu()以及DestroyMenu(),还要自己添加消息处理函数,工作量是非常大的。现在微软为我们做好了这些工作,是不是很方便?快快加入C#的行列吧。
Ҷƪл˵?
用C#实现电脑+数据线+手机模式发..[05-07]
C#语言中的重要知识详细介绍与解..[05-07]
完全解读C#.NET中的正则表达式[05-07]
实例学C#.net下轻松制作不规则窗..[05-07]
火影忍者第232话(隐居婆婆的决意..[05-06]
了解WEB页面工具语言XML(六)展望[05-06]
了解WEB页面工具语言XML(五)好处[05-06]
了解WEB页面工具语言XML(四)应用..[05-06]
了解WEB页面工具语言XML(三)支持..[05-06]
了解WEB页面工具语言XML(二)定义[05-06]