引言:
在上一节中,我们通过了一个MFC智能设备程序项目,带大家一起走进了Native c++开发WM的大门,我们了解了如何为程序添加控件、事件,以及自定义自己的类、方法。以及如何让程序来处理这些事件。今天呢,接上一节所说,我们来做一个和WM有关的小程序,就是打电话,我们要让程序在点击一个按钮后,拨出一个号码,很简单,但是也基本上很有代表性!
不过既然要让程序打电话,除非你可以有真实设备测试,否则请你安装一个WM6 sdk吧,它有个蜂窝模拟器,很不错。
下载地址详细请参看黎波老师的文章:http://www.cnblogs.com/upto/archive/2007/03/13/mobile-development-tools.html
使用方法详细请参看peterzb前辈的文章:http://www.cnblogs.com/peterzb/archive/2009/06/13/1502771.html
用模拟器打电话请参看黎波老师的这篇文章:http://www.cnblogs.com/upto/archive/2007/02/14/cellular-emulater-in-wm6sdk.html
Ok,工欲善其事,必先利其器。准备好了前期工作,我们就可以开始今天的探索啦!
正文:
受水平所限,我们这次依然创建一个基于MFC模板的智能设备应用程序把,项目名称叫做“MakeCall”,老样子,vs还是给我们生成了一些源文件、头文件等,打开“资源视图”窗口,依然可以看到我们的对话框。相信大家之前已经通过各种方式,了解到了这些东东的含义,我在此就不赘述鸟。我们还是打开对话框资源,拖动一个button到窗体上,更改它的Caption属性为:
Make it
(为什么不用DO it呢?这个就关系到e文的背景了,很不和谐的意思~在此略过~)。把原来那条TODO:xxxxx的Caption属性改为:We Will Make A Call,当然内容随便你哦。
这里,既然上面说是:点击一个按钮后,拨出一个号码。我们自然的为button1或者说Make it按钮添加“事件处理程序”,具体方法:右键点击按钮,选择“添加时间处理程序”,配置一般默认即可!
Ok!方法体已经有了,剩下来的就是添加那个“打电话”的方法啦,不知有人还记得吗?.Net CF下拨打电话太简单了,引用Microsoft.WindowsMobile.Telephony 命名空间,然后使用其下的Phone类中的Talk方法,即可拨打电话。现在我们在C++环境下,是不是这样呢?肯定不是,不过也差不多,我们也要去引用一个所谓的“命名空间”,但大家喜欢在这里(MFC)叫他“库文件”。当我们刚想去引用的时候,发现原来的方法不得行了,右键菜单里面没有“引用——》添加引用”了哦~,只有一个“引用...”。没关系,换汤不换药嘛,大胆的点开它~
天哪~完全不知所措?不怕,看图说话,我们按图中的序号选择,到第四步时,输入"phone.lib"即可。
查看原图(大图)
哎,你可能问我:“你怎么知道写phone.lib,为什么不是iPhone.lib呢?”,其实,通过查阅WM6 SDK自带的文档,我们基本上能查阅到所有主要功能代码以及它所属的lib,具体还请各位私下查阅吧。填好后,我们确定即可。
到这里,基本上了~接下来,我们为MakeCallDlg.cpp中的OnBnClickedButton1添加拨号代码如下:我们的PHONEMAKECALLINFO结构体,以及PhoneMakeCall方法均可在MSDN中查到。
1 void CMakeCallDlg::OnBnClickedButton1()
2 {
3 PHONEMAKECALLINFO callinfo;
4 callinfo.cbSize = sizeof(callinfo);
5 callinfo.dwFlags= PMCF_PROMPTBEFORECALLING;//PMCF_DEFAULT
6 callinfo.pszDestAddress = L"13411897756";
7 PhoneMakeCall(&callinfo);
8 }
Ok,最后,请记得,在MakeCallDlg.cpp顶部#include"phone.h"哦!接下来应该是顺利编译通过。然后就可以看到模拟器中,有一个打给13411897756的电话正在通话中了!
总结:
我们学会了:
1. 为程序完成特定功能添加引用
2. 拨打电话方法的使用
3. 修改控件的基本属性
问题:
我们也看到:
1. 拨号很死板,应该要灵活设置号码
2. ... ...
后记:
在接下来的一节中,我们将来改进一下这个程序,让他的拨号支持我们的输入,以及添加一个发送短信的功能在里面,届时我们又可以多学几个控件以及方法的使用。
出处:http://longqi293.cnblogs.com
编缉推荐阅读以下文章
版权与免责声明
1、本站所发布的文章仅供技术交流参考,本站不主张将其做为决策的依据,浏览者可自愿选择采信与否,本站不对因采信这些信息所产生的任何问题负责。
2、本站部分文章来源于网络,其版权为原权利人所有。由于来源之故,有的文章未能获得作者姓名,署“未知”或“佚名”。对于这些文章,有知悉作者姓名的请告知本站,以便及时署名。如果作者要求删除,我们将予以删除。除此之外本站不再承担其它责任。
3、本站部分文章来源于本站原创,本站拥有所有权利。
4、如对本站发布的信息有异议,请联系我们,经本站确认后,将在三个工作日内做出修改或删除处理。
请参阅权责声明!