最近,拿到一臺親戚送的GPS導航儀,其系統是基于WinCE5.0的,所以我覺得可以寫點小程序上去,上網一搜,還附帶破解方法,把GPS破解后就變成一臺屏幕超大的PDA了,于是我想用它看電子書,無奈,WinCE的軟件少之又少,而且下載到的txt閱讀軟件居然不能正常縮放字體,實在不爽,于是我打算自己寫個簡單的閱讀器,下面是我的開發過程:
?
開發工具:Visual Studio 2008
開發語言:c#,還是這個好用
開發平臺:Windows CE設備
開發過程:
首先我們先打開vs,然后建立一個c#語言的智能設備項目,記得平臺選擇.net cf 3.5,你也可以用2.0,這里只是方便我的敘述而已,其是一樣的!
然后拖三個按鈕,一個openFileDialog,一個textBox,和一個NumericUpDown控件到窗體上,如下圖:
具體的設置你們可以下載參照源代碼中的進行設置,這里不再贅述了。
然后添加如下代碼給Open按鈕:
?


openFileDialog1.ShowDialog();
????????????FilePath?=?openFileDialog1.FileName;
????????????Thread?myThread?=?new?Thread(new?ThreadStart(ReadText));
????????????myThread.IsBackground?=?true;
????????????myThread.Start();
?
再在窗體代碼中加入如下代碼:
這里使用了回調,來啟動一個后臺線程讀取文檔。


?public?Form1()
????????{
????????????InitializeComponent();
????????????addToText?=?new?AddToContentCallBack(AddToTextContent);
?????????
????????}
????????delegate?void?AddToContentCallBack(string?Texts);
????????AddToContentCallBack?addToText;
????????private?void?AddToTextContent(string?content)
????????{
????????????if?(txtContent.InvokeRequired)
????????????{
????????????????this.Invoke(addToText,?content);
????????????}
????????????else
????????????{
????????????????txtContent.Text?=?content;
????????????}
????????}
??
????????private?void?ReadText()
????????{
????????????StreamReader?objReader?=?new?StreamReader(FilePath,?System.Text.Encoding.Default);
????????????string?strLine?=?"";
????????????string?strLine1?=?"";
????????????ArrayList?al?=?new?ArrayList();
????????????try
????????????{
???????????????strLine?=?objReader.ReadToEnd();
???????????????
????????????????????if?(strLine?!=?null)
????????????????????{
????????????????????????AddToTextContent(strLine);
????????????????????}
????????????
????????????????
????????????}
????????????catch(Exception?ex)
????????????{
????????????????MessageBox.Show(ex.Message);
????????????}
????????????finally
????????????{
????????????????objReader.Close();
????????????}
????????}
????????private?string?FilePath;
?
至此,主要功能就完成了,下面再給字體設置按鈕Change設置如下代碼:
?


int?iSize=Convert.ToInt32(numericUpDown1.Value);
????????????txtContent.Font?=?new?Font("Tahoma",?iSize,?FontStyle.Regular);
?
ok,大功告成!
現在你就可以把這個程序拿到設備上運行了,呵呵,現在唯一的問題是讀取速度過慢,不知道是c#的效率問題,還是我的代碼問題或者是Wince設備本身的問題。
?這里是項目代碼下載:點擊下載