最近,拿到一台亲戚送的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按钮:
OpenBUtton openFileDialog1.ShowDialog(); FilePath = openFileDialog1.FileName; Thread myThread = new Thread(new ThreadStart(ReadText)); myThread.IsBackground = true; myThread.Start();
再在窗体代码中加入如下代码:
这里使用了回调,来启动一个后台线程读取文档。
CallBack 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设置如下代码:
Code int iSize=Convert.ToInt32(numericUpDown1.Value); txtContent.Font = new Font("Tahoma", iSize, FontStyle.Regular);
ok,大功告成!
现在你就可以把这个程序拿到设备上运行了,呵呵,现在唯一的问题是读取速度过慢,不知道是c#的效率问题,还是我的代码问题或者是Wince设备本身的问题。
这里是项目代码下载: