您的位置:首页 > 运维架构

使用OpenNetCF为Windows CE/Windows Mobile添加任务栏图标

2010-05-13 12:22 489 查看
本文转自:http://blog.csdn.net/porscheyin/archive/2009/12/08/4960518.aspx



由于项目需要,需要为在 WinCE 5.0 的系统中开发的程序加上一个任务栏图标,以实现单击或者双击图标即可使最小化的程序复原。由于 .NET Compact Framework 不支持完整版 .NET 的 NotifyIcon 类。所以我准备采用 P/Invoke 来调用系统的 dll 来实现,当在网络上搜集到一些资料后,发现采用此方法可能会导致程序结束后任务栏图标位置左移的弊端。于是决定采用 OpenNetCF 推出的 Smart Device Framework ( SDF )类库中的 NotifyIcon 类来完成。

OpenNetCF 的官方网址是 http://www.opennetcf.com/ ,你可以点击这个地址 http://www.opennetcf.com/Products/SmartDeviceFramework/tabid/65/Default.aspx 下载 Smart Device Framework ( SDF )最新版本 2.3 ,它分为社区版(免费),标准版( $50 ),专业版( $500 ),后两个版本只支持 Visual Studio 2008 ,而免费的社区版同时还支持 Visual Studio 2005 。社区版与收费版本最大的区别我认为是没有设计时支持,而 SDF 中只有少量的控件类,所以设计时支持也显得不是那么必要了,在我看来社区版已经足够用了,如果你有充足的资金,可以选择标准版或专业版,你将会得到更好的开发体验。

文件很小,只有 1.99M ,下载后进行安装,然后在 Visual Studio 中添加对 OpenNETCF.Windows.Forms.dll 的引用,路径为··· /Smart Device Framework/Bin 。(如下图)(在 Smart Device Framework 目录下还有一个 Samples 文件夹,里面有很多优秀的例子以供学习。)



添加引用后,在 VS 解决方案资源管理器的引用节点内会出现 OpenNETCF.Windows.Forms 。



实现的代码很简单,就像在 .NET Framework 中使用 NotifyIcon 类一样:

view plaincopy to clipboardprint?
01.using OpenNETCF.Windows.Forms;
02./// <summary>
03./// 设置任务栏图标。
04./// </summary>
05./// <param name="notifyIcon">通过引用传入一个NotifyIcon实例。</param>
06.private void InitNotifyIcon(NotifyIcon notifyIcon)
07.{
08.// 你可以任意使用单击或者双击事件,为了和WinCE系统保持一致,我选择了双击。
09. notifyIcon.DoubleClick += new EventHandler(notifyIcon_DoubleClick);
10. notifyIcon.Icon = this.Icon; // 这里通过引用窗体的图标对Icon属性赋值。
11. notifyIcon.Text = "你想在托盘图标被按住时显示的提示性文字。";
12. notifyIcon.Visible = true;
13. }
14.void notifyIcon_DoubleClick(object sender, EventArgs e)
15.{
16. this.Show(); // 显示主窗体。
17.}
using OpenNETCF.Windows.Forms;
/// <summary>
/// 设置任务栏图标。
/// </summary>
/// <param name="notifyIcon">通过引用传入一个NotifyIcon实例。</param>
private void InitNotifyIcon(NotifyIcon notifyIcon)
{
// 你可以任意使用单击或者双击事件,为了和WinCE系统保持一致,我选择了双击。
notifyIcon.DoubleClick += new EventHandler(notifyIcon_DoubleClick);
notifyIcon.Icon = this.Icon; // 这里通过引用窗体的图标对Icon属性赋值。
notifyIcon.Text = "你想在托盘图标被按住时显示的提示性文字。";
notifyIcon.Visible = true;
}
void notifyIcon_DoubleClick(object sender, EventArgs e)
{
this.Show(); // 显示主窗体。
}


这样使用即可:

view plaincopy to clipboardprint?
01.NotifyIcon nic = new NotifyIcon();
02.InitNotifyIcon(nic);
NotifyIcon nic = new NotifyIcon();
InitNotifyIcon(nic);

以上代码同时支持 Windows CE 和 Windows Mobile 。至此就轻松地完成了为在基于 Windows CE 系统上开发的 .NET 程序添加任务栏图标的功能。 Smart Device Framework 弥补了 .Net CF 的不足,将所有对操作系统服务的调用封装到了这个类库中,方便基于托管代码平台的开发者直接访问平台服务而不需要繁琐的 P/Invoke 调用,是 .NET CF 开发人员的好帮手 。

本文来自CSDN博客,转载请标明出处:http://blog.csdn.net/porscheyin/archive/2009/12/08/4960518.aspx
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: 
相关文章推荐