a) 安裝 Microsoft Visual Studio 2005, 選擇自訂安裝, 將有關於智慧型裝置開發的選項都安裝, 我在安裝的時候有出現一個 .NET Framework SDK 組件無法安裝的錯誤, 回到自訂安裝的地方把它取消不安裝就可以正常安裝了
b) 接下來是安裝Smartphone的模擬器 http://www.microsoft.com/downloads/details.aspx?familyid=791bae52-b057-4d72-b263-105534825ca5&displaylang=en
II. 建立 VS 2005 的 Project for Smartphone
a) 開始 -> 程式集 -> Microsoft Visual Studio 2005 -> Microsoft Visual Studio 2005
b) 建立新的專案

c) 選擇開發語言(Visual C#)與裝置(Smartphone 2003)

III. 設計smartphone的選單
a) 在手機的螢幕空白處點一下, 然後修改 Form1 的 Text 屬性, 可以將預設的Form1改為你想要顯示的文字, 最後於螢幕的空白處點兩下開啟程式, 基本上會先跳到Form1_Load

b) 接著於註解 "表單的主功能表。" 下方加入以下的選單宣告
///<summary>
/// 表單的主功能表。
///</summary>
private System.Windows.Forms.MainMenu mainMenu1;
private MenuItem mi1 = new MenuItem();
private MenuItem mi2 = new MenuItem();
private MenuItem miChildA = new MenuItem();
private MenuItem miChildB = new MenuItem();
private MenuItem miGrandChildA1 = new MenuItem();
private MenuItem miGrandChildA2 = new MenuItem();
private MenuItem miGrandChildA3 = new MenuItem();
private MenuItem miGrandChildA4 = new MenuItem();
private MenuItem miGrandChildA5 = new MenuItem();
private MenuItem miGrandChildB1 = new MenuItem();
private MenuItem miGrandChildB2 = new MenuItem();
c) 在 InitializeComponent(); 下面描述Menu的繼承架構, Event handler 與Menu Text
public Form1()
{
InitializeComponent();
// Add any constructor code after InitializeComponent call
mainMenu1.MenuItems.Add(mi1);
mainMenu1.MenuItems.Add(mi2);
mi2.MenuItems.Add(miChildA);
mi2.MenuItems.Add(miChildB);
miChildA.MenuItems.Add(miGrandChildA1);
miChildA.MenuItems.Add(miGrandChildA2);
miChildA.MenuItems.Add(miGrandChildA3);
miChildA.MenuItems.Add(miGrandChildA4);
miChildA.MenuItems.Add(miGrandChildA5);
miChildB.MenuItems.Add(miGrandChildB1);
miChildB.MenuItems.Add(miGrandChildB2);
// Event handler for the top left menu.
mi1.Click += new EventHandler(mi1_Click);
miGrandChildA1.Click += new EventHandler(exit_prog);
// Menu Text definition
mi1.Text = "Map Help";
mi2.Text = "Maps";
miChildA.Text = "My Maps";
miChildB.Text = "Add and Remove";
miGrandChildA1.Text = "A1";
miGrandChildA2.Text = "A2";
miGrandChildA3.Text = "A3";
miGrandChildA4.Text = "A4";
miGrandChildA5.Text = "A5";
miGrandChildB1.Text = "B1";
miGrandChildB2.Text = "B2";
}
d) 於 Form1_Load 這個 Function的下方加入其他的 private Function, 其中 mil1_Click 的功能是秀出文字, exit_prog 則是離開應用程式
private void Form1_Load(object sender, EventArgs e)
{
}
private void mi1_Click(object sender, EventArgs e)
{
MessageBox.Show("This is just a test");
}
private void exit_prog(object sender, EventArgs e)
{
Application.Exit();
}
e) 接下來是執行, 按下圖的Play鍵即可

f) 選擇 Smartphone 2003 SE 模擬器, 然後按部署

g) 等一段時間(約10秒)後就會有結果輸出


h) 可以點選 top left 與 top right 的按鍵試試看功能 enjoy ^.^
IV. 期望
之所以會寫這篇文章是想要在此論壇集思廣益, 開發一些自由的軟體Freeware, 雖然比不上大公司開發的軟體, 但是可以藉由一些現有的模組去湊一些東西, 相信應該會蠻有成就感的, 呵 雖然不太容易達到這個目標, 但小弟我會持續做一點有貢獻的開發, 畢竟手機是隨身帶在身上的, 且又是一台小型的電腦, 何不拿來多利用點呢! 希望有先進或同好一起來共襄盛舉囉!
V. 參考來源
http://samples.gotdotnet.com/quickstart/CompactFramework/doc/spmenus.aspx
完整 Source Code 下載
附加壓縮檔: 200608/mobile01-c174eee44753e55bb759cb6f337bc5b5.zip