博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
windows mobile5.0开发第一个.Net应用程序[xgluxv]
阅读量:5748 次
发布时间:2019-06-18

本文共 3193 字,大约阅读时间需要 10 分钟。

 由于本人非常穷 所以自己是没有机器的 所有的程序都在模拟器里完成emcry.gifhitwall.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
ContractedBlock.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.gifContractedBlock.gif        
dot.gif
{
InBlock.gif            Phone myphone 
= new Phone();
InBlock.gif            myphone.Talk(
"0573-1234567");
ExpandedBlockEnd.gif        }
ExpandedBlockStart.gifContractedBlock.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.gifContractedBlock.gif        
dot.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.gifContractedBlock.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.gifContractedBlock.gif        
dot.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.gifContractedBlock.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.gifContractedBlock.gif        
dot.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。

 

转载于:https://www.cnblogs.com/dotLive/archive/2006/03/04/342780.html

你可能感兴趣的文章
Windows Phone 7 中各种Task解说(启动器与选择器)
查看>>
ArcGIS网络分析之Silverlight客户端最近设施点分析(四)
查看>>
罗森伯格助力2011年中国智能建筑技术发展应用论坛哈尔滨站
查看>>
网络割接
查看>>
mysql主从复制及失败切换
查看>>
windows server 2016 活动目录(二)
查看>>
openstack G版 修改vm的flavor级别
查看>>
python_控制台输出带颜色的文字方法
查看>>
java泛型中特殊符号的含义
查看>>
一秒 解决 ERROR 1044 (42000): Access denied for user ''@'localhost' to database 'mysql 问题
查看>>
Android组件化最佳实践 ARetrofit原理
查看>>
舍弃浮躁, 50条重要的C++学习建议
查看>>
同步手绘板——将View的内容映射成Bitmap转图片导出
查看>>
虚拟机安装OS_X_Lion 反复注册问题
查看>>
【Android游戏开发之十】(优化处理)详细剖析Android Traceview 效率检视工具!分析程序运行速度!并讲解两种创建SDcard方式!...
查看>>
微信小程序之wx.navigateback往回携带参数
查看>>
陌陌和请吃饭之类的应用,你要是能玩转,那就厉害了
查看>>
递归的运行机制简单理解
查看>>
汉字转阿斯克马值
查看>>
Java 栈与堆简介
查看>>