windows mobile5.0开发第一个.Net应用程序[xgluxv

简介:

由于本人非常穷 所以自己是没有机器的 所有的程序都在模拟器里完成emcry.gif hitwall.gif
这是本人学习mobile开发的感想和例子 学习的东西大都来自微软的webcast和msdn,基本上不是原创.就是整理再发表.

前面的文章 已经安装完了开发环境,今天就开始写第一个程序。首先我们进入vs2005 
然后是File->new->project->visual c#->smart device->windows mobile 5.0 smartphone->Device Application,选择保存工程路径,单击OK 工程建立完成。进入开发界面。模拟器的截图 
smartphone.jpg 
挺漂亮的emthup.gif

习惯性的先到工具栏里看看 发现很多控件,其中包括了常用控件:Lable、TextBox、PictureBox、ComboBox、ListView、TreeView、ProgressBar、CheckBox、DaTeTimePicker、LinkLable、WebBrowser,容器控件:Panle,菜单工具栏控件 MainMenu,数据绑定显示控件:BindingSource、DataGrid 设备组件:ImageList、MessageQueue、SerialPort、Timer。如果开发过计算机windows程序 这些控件是很熟悉的了。

smartphone文件系统不是以盘符分的 就是一个根目录.程序中操作只支持绝对路径。在.net里操作文件和目录使用的名称空间为System.IO,而获取指定文件夹的路径要使用API,SHGetSpecialFolderPath函数,存储卡的是以"\Storage Card"目录形式出现,操作存储卡的的API有FindFirstFlashCard,FindNextFlashCard等。

在smartphone中支持的一些特用的API,分为托管和本地的API, 
首先介绍一下电话拨号的托管的API,在名称空间Microsoft.WindwosMobile.Telephony其中的Phone.Talk(string PhoneNumber)主要用来呼叫一个号码,如果想得到更详细的拨号信息智能调用本地API--TAPI,这个将在以后的文章中具体介绍,主要是用来得到拨出和拨入的状态操作等,它需要包含TAPI.H头文件,引入CoreDll.lib类库。 
第二个介绍是短信API,托管的API有在名称空间Microsoft.WindwosMobile.PocketOutlook.SmsMessage下的SmsMessage.Send(SmsMessage)的函数,而本地的API包含SmsOpen,SmsSendMessage,SmsGetPhoneNumber,SmsClose等方法,包含在sms.h头文件,需要引用sms.lib的类库。托管类的名称空间Microsoft.WindwosMobile.PocketOutlook除了可以发送短信的功能还包含了发送邮件,添加任务,约会和联系人的功能。

在.Net CF中还包含了一些对方框 使操作手机里的文件更容易操作,其中常用的有CameraCaptureDialog照相机对方框,ChooseContactDialog联系人对方框,SelectPicturDialog选择图片对话框。这些对话框的应用以后再说.

接下来将写一个程序包括发送短信 邮件 拨打电话和添加约会的功能

首先在一开始建立的工程中的Form1的MainMenu中添加如图的菜单项, 
smartphone_de.jpg 
接着就是在各个菜单项的click事件中添加下边的代码 

ExpandedBlockStart.gif          /// <summary> 
InBlock.gif        
/// 拨打电话 
InBlock.gif        
/// </summary> 
InBlock.gif        
/// <param name="sender"></param> 
ExpandedBlockEnd.gif        
/// <param name="e"></param>
 
None.gif          private   void  menuItem5_Click( object  sender, EventArgs e) 
ExpandedBlockStart.gif        

InBlock.gif            Phone myphone 
= new Phone(); 
InBlock.gif            myphone.Talk(
"0573-1234567"); 
ExpandedBlockEnd.gif        }
 
ExpandedBlockStart.gif        
/// <summary> 
InBlock.gif        
/// 发送短信 
InBlock.gif        
/// </summary> 
InBlock.gif        
/// <param name="sender"></param> 
ExpandedBlockEnd.gif        
/// <param name="e"></param>
 
None.gif          private   void  menuItem3_Click( object  sender, EventArgs e) 
ExpandedBlockStart.gif        

InBlock.gif            Microsoft.WindowsMobile.PocketOutlook.SmsMessage smsM 
= new SmsMessage(); 
InBlock.gif            smsM.Body 
= "Hello World"
InBlock.gif            smsM.To.Add(
new Recipient("老杨","133002121629")); 
InBlock.gif            
//发送成功 得到一个反馈 
InBlock.gif
            smsM.RequestDeliveryReport=true
InBlock.gif            smsM.Send(); 
ExpandedBlockEnd.gif        }
 
ExpandedBlockStart.gif        
/// <summary> 
InBlock.gif        
/// 发送邮件 
InBlock.gif        
/// </summary> 
InBlock.gif        
/// <param name="sender"></param> 
ExpandedBlockEnd.gif        
/// <param name="e"></param>
 
None.gif          private   void  menuItem4_Click( object  sender, EventArgs e) 
ExpandedBlockStart.gif        

InBlock.gif            Microsoft.WindowsMobile.PocketOutlook.EmailMessage emailM 
= new EmailMessage(); 
InBlock.gif            emailM.Subject 
= "Hello World"
InBlock.gif            emailM.BodyText 
= "我打.."
InBlock.gif            emailM.To.Add(
new Recipient("大个""Teaks@hotmail.com")); 
InBlock.gif            
//添加附件 
InBlock.gif            
//Attachment attach=new Attachment("\luxv\g.gif"); 
InBlock.gif            
//emailM.Attachments.Add(attach); 
InBlock.gif            
//emailM.Send("大个"); 
ExpandedBlockEnd.gif
        }
 
ExpandedBlockStart.gif        
/// <summary> 
InBlock.gif        
/// 添加约会 
InBlock.gif        
/// </summary> 
InBlock.gif        
/// <param name="sender"></param> 
ExpandedBlockEnd.gif        
/// <param name="e"></param>
 
None.gif          private   void  menuItem7_Click( object  sender, EventArgs e) 
ExpandedBlockStart.gif        

InBlock.gif            Microsoft.WindowsMobile.PocketOutlook.OutlookSession mysession 
= new OutlookSession(); 
InBlock.gif            Appointment apment 
=new Appointment (); 
InBlock.gif            apment.Subject
="test"
InBlock.gif            apment.Body 
="吃饭"
InBlock.gif            apment.Start
=DateTime.Now; 
InBlock.gif            apment.End
=DateTime.Now.AddDays(4); 
InBlock.gif            mysession.Appointments.Items.Add(apment); 
InBlock.gif            apment.ShowDialog(); 
ExpandedBlockEnd.gif        }

 写完这些就可以把传统手机的常用功能学习到了.

代码例子

需要注意的windows mobile5.0预装的是.net cf1.1 sp3,如果要运行.net cf2.0的程序,需要自己安装.net cf 2.0。



本文转自 lu xu 博客园博客,原文链接: http://www.cnblogs.com/dotLive/archive/2006/03/04/342780.html  ,如需转载请自行联系原作者

相关文章
|
4天前
|
算法 Linux Windows
FFmpeg开发笔记(十七)Windows环境给FFmpeg集成字幕库libass
在Windows环境下为FFmpeg集成字幕渲染库libass涉及多个步骤,包括安装freetype、libxml2、gperf、fontconfig、fribidi、harfbuzz和libass。每个库的安装都需要下载源码、配置、编译和安装,并更新PKG_CONFIG_PATH环境变量。最后,重新配置并编译FFmpeg以启用libass及相关依赖。完成上述步骤后,通过`ffmpeg -version`确认libass已成功集成。
23 1
FFmpeg开发笔记(十七)Windows环境给FFmpeg集成字幕库libass
|
4天前
|
Windows
LabVIEW启用/禁用Windows屏幕保护程序
LabVIEW启用/禁用Windows屏幕保护程序
16 4
LabVIEW启用/禁用Windows屏幕保护程序
|
4天前
|
编解码 Windows
LabVIEW应用程序在Windows版本之间的字体变化
LabVIEW应用程序在Windows版本之间的字体变化
14 1
|
4天前
|
SQL Windows
保姆级:Windows Server 2012上安装.NET Framework 3.5
保姆级:Windows Server 2012上安装.NET Framework 3.5
|
4天前
|
存储 安全 搜索推荐
Windows之隐藏特殊文件夹(自定义快捷桌面程序)
Windows之隐藏特殊文件夹(自定义快捷桌面程序)
|
4天前
|
Windows
Windows 程序自启动实现方法详解
Windows 程序自启动实现方法详解
28 0
|
4天前
|
C# Windows
一款.NET开源、简洁易用的Windows桌面小说阅读应用
一款.NET开源、简洁易用的Windows桌面小说阅读应用
|
4天前
|
前端开发 Linux iOS开发
【Flutter前端技术开发专栏】Flutter在桌面应用(Windows/macOS/Linux)的开发实践
【4月更文挑战第30天】Flutter扩展至桌面应用开发,允许开发者用同一代码库构建Windows、macOS和Linux应用,提高效率并保持平台一致性。创建桌面应用需指定目标平台,如`flutter create -t windows my_desktop_app`。开发中注意UI适配、性能优化、系统交互及测试部署。UI适配利用布局组件和`MediaQuery`,性能优化借助`PerformanceLogging`、`Isolate`和`compute`。
【Flutter前端技术开发专栏】Flutter在桌面应用(Windows/macOS/Linux)的开发实践
|
4天前
|
人工智能 量子技术 C#
【专栏】.NET 开发:开启数字化新时代
【4月更文挑战第29天】.NET开发在数字化新时代中发挥关键作用,借助跨平台能力、高性能和现代编程语言支持,如C#,助力企业实现数字化转型。通过企业级应用开发、移动应用和云计算集成,.NET加速业务流程和提升用户体验。未来,.NET将涉足AI、ML、MR/AR及量子计算,持续推动技术创新和数字化转型。开发者应提升技能,适应高性能需求,把握发展机遇。
|
4天前
|
缓存 监控 算法
【专栏】.NET 开发:实现卓越性能的途径
【4月更文挑战第29天】本文探讨了.NET开发中的性能优化,强调了理解性能问题根源和使用分析工具的重要性。基础优化包括代码优化(如减少计算、避免内存泄漏)、资源管理及选择合适算法。高级策略涉及并行编程、缓存策略、预编译(AOT)和微服务架构。持续性能测试与监控是关键,包括性能测试、监控分析和建立优化反馈循环。开发者应持续学习和实践性能优化,以构建高性能应用。

热门文章

最新文章