『原创』用C++开发WM应用系列(3)——发送SMS
引言:
接上一节,我们学会了如何在PPC中,拨打电话,可是,电话号码是硬编码的,肯定不行,所以,在这一节中,我们使用一个CEdit控件来供用户输入号码,从程序获取这个号码并拨打,当然,照葫芦画瓢,我们来实践一把WM6 sdk自带的Hello(SMS)短信发送实例。在这一节中,我们要学习如何从CEdit控件获取字符串,以及发送Sms短信息。
正文:
上一节中,我们的用户界面如下,不过可以看到,我又拖拽了一个Button控件到Make it 按钮下方,并修改它的Caption属性为Send SMS。以及一个Cedit控件到Make it按钮上方。
然后,也许在C#下,一个textbox的值直接在代码中即可获得,但是在cpp里,那个CEdit是一个特殊控件,详细使用请看网络搜索结果,在这里只是列举了一个简单方法。我们右键单击这个CEdit控件,选择添加变量。
在添加变量的向导中,我们设置变量类型就为“CEdit”,变量名称为:telNum,其他保持默认,点击完成,这样我们就建立了一个引用到CEdit的变量telNum了。接下来,我们修改Make it按钮的代码:
void CMakeCallDlg::OnBnClickedButton1()
{
PHONEMAKECALLINFO callinfo;
callinfo.cbSize = sizeof(callinfo);
callinfo.dwFlags= PMCF_PROMPTBEFORECALLING;//这个参数是说,拨号前先取得用户许可,而这个参数PMCF_DEFAULT则是直接拨号
CString telephone;
telNum.GetWindowText(telephone);//从CEdit中取得Text放入到telephone中
callinfo.pszDestAddress = telephone;
if(PhoneMakeCall(&callinfo)==0)
{
}
else
{
MessageBox(L"Dialg Failed!",L"Tips",0);
}
}
代码清晰可见,与原来的相差无几,无非就是处理了电话号码。到这里,上一节总算是告一段落~接下来,我们看看SMS功能吧。本来这个功能在.net cf下是很简单的,可是唉~~算了,我们打开WM6 sdk下的那个cpp Hello(SMS)实例,看了一下,我发现自己无须写太多,在此也就是重申一下一些个人感觉比较重要的地方,我打开了那个示例,拷贝了那个SendSMS()方法到自己的MakeCallDlg.cpp中,为项目添加sms.lib的引用,当然了,这里还是看图说话:
我们添加了一个sms.lib引用,这也是SDK文档中说明的啦~。
有了这个还不行,还要到MakeCallDlg.cpp中,#include"sms.h",在代码中还要先申明一下SendSMS()方法如下:
void SendSMS(BOOL bSendConfirmation, BOOL bUseDefaultSMSC, LPCTSTR lpszSMSC, LPCTSTR lpszRecipient, LPCTSTR lpszMessage);
相信各位一定从示例程序看到一些端倪了,我在此就不多说,到这里,我们只需要为Send SMS按钮添加一个事件处理程序即可,方法照旧,往方法体中添加如下代码:
void CMakeCallDlg::OnBnClickedButton2()
{
CString number;
telNum.GetWindowText(number);
SendSMS(true,true,L"",number,L"Test");
}
在这里说明一下,bSendConfirmation是信息回执的意思,bUseDefaultSMSC是是否使用默认短信中心号码,lpszSMSC是短信中心号码,lpszRecipient是收件人号码,最后一个当然是短信内容了。下面是运行截图:
在输入框中输入10086,然后点击“Make it”按钮,则先提示是否拨打,点击Yes后,可以看到Cell模拟器有拨打电话的动作了:
之后,我们挂断电话,再点击Send SMS按钮,如果发送成功,则出现如下画面,我们也可从Cell模拟器中看到刚才发送的短信:
OK,今天就到这里吧,照旧,上一节以及本节的代码示例项目均可以在此下载到。
快过年了~Jack跟各位大小虾拜个早年!身体健康、工作顺利!嘿嘿~~~~
总结:
今天我们接触了一个CEdit控件,貌似以后很长一段时间内都要遇到他,所以大家有空可以研究研究。然后,今天还看到了一个SendSMS方法,这个方法请查阅MSDN或者WM6 sdk文档,均有详细说明。
由于时间仓促,这个程序短信部分没有在真机测试过,可能会存在问题,比如短信中心,收件人号码等,希望大家在测试的时候注意。
问题:
还待发现中,貌似这些例子比较简单,我们暂且还没有啥大问题,不过在平常,什么字符串转换的异常,类型转换的异常,一直在伴随着我们这些cpp新手,只能说一句,坚持就是胜利!呵呵~~
后记:
也是过年了,好好享受一下假期,所以可能下一节的内容会在节后更新,感谢大家的支持!
出处:http://longqi293.cnblogs.com
本博文欢迎大家浏览和转载,但未经作者同意必须保留此段声明,且在文章页面明显位置给出原文连接,在『参考』的文章中,我会表明参考的文章来源,尊重他人版权。若您发现我侵犯了您的版权,请及时与我联系。
本篇博文 by Jack Fan is licensed under a Creative Commons 署名-非商业性使用-相同方式共享 2.5 中国大陆 License.
这是我的公众号,【代码只是副业】