『原创』用C++开发WM应用系列(2)——拨打电话
引言:
在上一节中,我们通过了一个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中查到。
void CMakeCallDlg::OnBnClickedButton1() { PHONEMAKECALLINFO callinfo; callinfo.cbSize = sizeof(callinfo); callinfo.dwFlags= PMCF_PROMPTBEFORECALLING;//PMCF_DEFAULT callinfo.pszDestAddress = L"13411897756"; PhoneMakeCall(&callinfo); }
Ok,最后,请记得,在MakeCallDlg.cpp顶部#include"phone.h"哦!接下来应该是顺利编译通过。然后就可以看到模拟器中,有一个打给13411897756的电话正在通话中了!
总结:
我们学会了:
- 为程序完成特定功能添加引用
- 拨打电话方法的使用
- 修改控件的基本属性
问题:
我们也看到:
- 拨号很死板,应该要灵活设置号码
- ... ...
后记:
在接下来的一节中,我们将来改进一下这个程序,让他的拨号支持我们的输入,以及添加一个发送短信的功能在里面,届时我们又可以多学几个控件以及方法的使用。
出处:http://longqi293.cnblogs.com
本博文欢迎大家浏览和转载,但未经作者同意必须保留此段声明,且在文章页面明显位置给出原文连接,在『参考』的文章中,我会表明参考的文章来源,尊重他人版权。若您发现我侵犯了您的版权,请及时与我联系。
本篇博文 by Jack Fan is licensed under a Creative Commons 署名-非商业性使用-相同方式共享 2.5 中国大陆 License.
这是我的公众号,【代码只是副业】