Windows Mobile 今日插件開發
一、概述
Windows Mobile今日插件,主要是用C++或VC++實現的。在microsoft的msdn上有關於今日插件的開發樣例,該樣例其實是CF調用C++寫的類,通過網頁來實現的。
有以下幾個缺點:
1. 不能把今日插件設置成透明的;
2. 控件定位十分困難;
3. 部署的時候比較麻煩。
該樣例代碼可到:http://msdn2.microsoft.com/en-us/library/ms839442.aspx下載。
本文主要介紹ChrisTec今日插件,該插件用C#語言實現。該插件特點是開發簡單,僅僅開發出一個自定義用戶控件就可實現。下面將介紹如何通過該插件實現今日提醒。
二、開發環境
vs2005+windows mobile6.0。
三、開發步驟
1、下載ChrisTec今日插件框架包
該插件的下載地址:
http://managedtodayscreen.codeplex.com/Release/ProjectReleases.aspx?ReleaseId=10947;
ManagedTodayScreenItem-Alpha2.zip文件裏包含三個文件,分別是ChrisTec的dll、框架包cab及樣例cab文件。
ManagedTodayScrenItem-src-Alpha2.zip文件是ChrisTec源代碼文件夾,裏面包含dll、框架包cab及樣例包cab工程。
2、創建今日插件工程
打開vs2005(vs2008沒有測試過),選擇“新建->項目->智能設備->WM6->control library”,輸入工程名“Today”,點擊“確定”按鈕創建工程,如下圖所示。
3、創建今日插件用戶控件
1)在初始化方法InitializeComponent()裏,
修改用戶控件大小:this.Size = new System.Drawing.Size(240, 20);
添加重繪事件:
this.Paint += new System.Windows.Forms.PaintEventHandler(this.UserControl1_Paint);
2)添加資源文件
右擊“Today”工程,選擇“添加->新建項->資源文件”,輸入資源文件名稱“Resource”,創建完畢後,雙擊“Resouce”,添加圖像文件“search”。
3)在UserControl1類裏
添加UserControl1_Paint重繪方法:
private void CurrentTimeCtl_Paint(object sender, PaintEventArgs e)
{
Graphics graphics = e.Graphics;
using (Brush brush = new SolidBrush(Color.White))
{
// Resource.search是一個待顯示的bmp圖像,定義在Resource資源文件裏
graphics.DrawImage(Resource.search, 3, 3);
//text待顯示的文件
graphics.DrawString(text, Font, brush, textRect);
}
}
添加鼠標點擊事件方法:
protected override void OnMouseUp(MouseEventArgs e)
{
//base.OnMouseUp(e);
Point pt = new Point(e.X, e.Y);
if (this.ClientRectangle.Contains(pt))
{
MessageBox.Show("今日插件測試");
}
Invalidate();
}
4)添加引用及註解
添加“Christec.WindowsMobile.TodayScreen.dll”引用:
在UserControl1類引用該dll:using ChrisTec.WindowsMobile.TodayScreen;
添加註解:
在UserControl1類定義上面定義註解,該註解與dll文件定義的TodayScreenItem相對應,該註解不可缺少。
[TodayScreenItem ("UserControl1")]
public partial class UserControl1 : UserControl
{
}
4、創建今日插件cab工程
1)給Today工程創建cab工程,輸入工程名“TodayTest”
2)添加輸出
右擊“TodayTest”工程,選擇“添加->項目輸出”,在彈出的“添加項目輸出組”裏,選擇“主輸出”,點擊“確定”按鈕。
3)給主輸出添加文件夾
雙擊“主輸出來自Today(活動)”選項.在彈出的選項卡里添加文件目錄“%CE1%/Managed Today Screen Framework”,該文件目錄與ChrisTec框架cab包的安裝目錄保持一直。
4)給Managed Today Screen Framework文件夾添加文件
添加文件:ChrisTec.WindowsMobile.TodayScreen.dll;
5)修改主輸出文件目錄
右擊“主輸出來自Today(活動)”選項,選擇“屬性”,在屬性的Folder選項裏,選擇“Managed Today Screen Framework”。
編譯Today及TodayTest工程,生成TodayTest.cab安裝包。
5、安裝ChrisTec.WindowsMobile.TodayScreen-Framework.CAB和TodayTest.cab包
1)將ChrisTec.WindowsMobile.TodayScreen-Framework.CAB和TodayTest.cab包拷貝到真機或模擬器上;
2)安裝ChrisTec.WindowsMobile.TodayScreen-Framework.CAB;
3)安裝TodayTest.cab;
4)重置模擬器或真機。
本樣例在模擬器上的顯示結果如下圖所示:
6、結論
本文主要介紹今日插件的簡單用法,有錯誤的地方,請指正。另外,本文樣例僅僅是在模擬器上經過驗證,在真機上沒驗證。在模擬器上的結果圖:
源代碼下載地址:http://download.csdn.net/source/1210620
7、參考資料
1)http://www.christec.co.nz/blog/archives/279;
2)http://hi.baidu.com/ny_dsc/blog/item/0add58559cdac950d00906f8.html;
3)http://topic.csdn.net/u/20070610/09/33ccbf4c-b841-488b-be70-0824e2e1935b.html;
4)http://managedtodayscreen.codeplex.com/Release/ProjectReleases.aspx?ReleaseId=10947