Windows Mobile 今日插件開發

Windows Mobile 今日插件開發

一、概述 

Windows Mobile今日插件,主要是用C++VC++實現的。在microsoftmsdn上有關於今日插件的開發樣例,該樣例其實是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文件裏包含三個文件,分別是ChrisTecdll、框架包cab及樣例cab文件。

ManagedTodayScrenItem-src-Alpha2.zip文件是ChrisTec源代碼文件夾,裏面包含dll、框架包cab及樣例包cab工程。

2、創建今日插件工程

打開vs2005vs2008沒有測試過),選擇“新建->項目->智能設備->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類引用該dllusing 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”。

 

       編譯TodayTodayTest工程,生成TodayTest.cab安裝包。

5、安裝ChrisTec.WindowsMobile.TodayScreen-Framework.CABTodayTest.cab

       1)將ChrisTec.WindowsMobile.TodayScreen-Framework.CABTodayTest.cab包拷貝到真機或模擬器上;

2)安裝ChrisTec.WindowsMobile.TodayScreen-Framework.CAB

3)安裝TodayTest.cab

4)重置模擬器或真機。

本樣例在模擬器上的顯示結果如下圖所示:

 

 

6、結論

       本文主要介紹今日插件的簡單用法,有錯誤的地方,請指正。另外,本文樣例僅僅是在模擬器上經過驗證,在真機上沒驗證。在模擬器上的結果圖:

 

          

    源代碼下載地址:http://download.csdn.net/source/1210620

 

7、參考資料

1http://www.christec.co.nz/blog/archives/279;

2http://hi.baidu.com/ny_dsc/blog/item/0add58559cdac950d00906f8.html;

3http://topic.csdn.net/u/20070610/09/33ccbf4c-b841-488b-be70-0824e2e1935b.html;

4http://managedtodayscreen.codeplex.com/Release/ProjectReleases.aspx?ReleaseId=10947

 

 

 

 

 

 

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章