当前位置:主页   - 电脑 - 程序设计 - C/C++
用C++开发WM应用系列(3)——发送SMS
来源:网络   作者:Jack Fan   更新时间:2011-10-16
收藏此页】    【字号    】    【打印】    【关闭

  接上一节,我们学会了如何在PPC中,拨打电话,可是,电话号码是硬编码的,肯定不行,所以,在这一节中,我们使用一个CEdit控件来供用户输入号码,从程序获取这个号码并拨打,当然,照葫芦画瓢,我们来实践一把WM6 sdk自带的Hello(SMS)短信发送实例。在这一节中,我们要学习如何从CEdit控件获取字符串,以及发送Sms短信息。

  上一节中,我们的用户界面如下,不过可以看到,我又拖拽了一个Button控件到Make it 按钮下方,并修改它的Caption属性为Send SMS。以及一个Cedit控件到Make it按钮上方。 

  然后,也许在C#下,一个textbox的值直接在代码中即可获得,但是在cpp里,那个CEdit是一个特殊控件,详细使用请看网络搜索结果,在这里只是列举了一个简单方法。我们右键单击这个CEdit控件,选择添加变量。

用C++开发WM应用系列(3)——发送SMS

  在添加变量的向导中,我们设置变量类型就为“CEdit”,变量名称为:telNum,其他保持默认,点击完成,这样我们就建立了一个引用到CEdit的变量telNum了。接下来,我们修改Make it按钮的代码:

  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);
   }
}

编缉推荐阅读以下文章

  • 用C++开发WM应用系列(4)——处理屏幕旋转
  • 用C++开发WM应用系列(2)——拨打电话
  • 用C++开发WM应用系列(1)——"Hello World" Pro!(下)
  • 用C++开发WM应用系列(1)——"Hello World" Pro!(上)

  代码清晰可见,与原来的相差无几,无非就是处理了电话号码。到这里,上一节总算是告一段落~接下来,我们看看SMS功能吧。本来这个功能在.net cf下是很简单的,可是唉~~算了,我们打开WM6 sdk下的那个cpp Hello(SMS)实例,看了一下,我发现自己无须写太多,在此也就是重申一下一些个人感觉比较重要的地方,我打开了那个示例,拷贝了那个 SendSMS()方法到自己的MakeCallDlg.cpp中,为项目添加sms.lib的引用,当然了,这里还是看图说话:

用C++开发WM应用系列(3)——发送SMS

  查看原图(大图)

  我们添加了一个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是收件人号码,最后一个当然是短信内容了。下面是运行截图:

编缉推荐阅读以下文章

  • 用C++开发WM应用系列(4)——处理屏幕旋转
  • 用C++开发WM应用系列(2)——拨打电话
  • 用C++开发WM应用系列(1)——"Hello World" Pro!(下)
  • 用C++开发WM应用系列(1)——"Hello World" Pro!(上)

  在输入框中输入10086,然后点击“Make it”按钮,则先提示是否拨打,点击Yes后,可以看到Cell模拟器有拨打电话的动作了:

用C++开发WM应用系列(3)——发送SMS用C++开发WM应用系列(3)——发送SMS

  之后,我们挂断电话,再点击Send SMS按钮,如果发送成功,则出现如下画面,我们也可从Cell模拟器中看到刚才发送的短信:

用C++开发WM应用系列(3)——发送SMS用C++开发WM应用系列(3)——发送SMS

  OK,今天就到这里吧,照旧,上一节以及本节的代码示例项目均可以

  总结:

  今天我们接触了一个CEdit控件,貌似以后很长一段时间内都要遇到他,所以大家有空可以研究研究。然后,今天还看到了一个SendSMS方法,这个方法请查阅MSDN或者WM6 sdk文档,均有详细说明。

  由于时间仓促,这个程序短信部分没有在真机测试过,可能会存在问题,比如短信中心,收件人号码等,希望大家在测试的时候注意。

  问题:

  还待发现中,貌似这些例子比较简单,我们暂且还没有啥大问题,不过在平常,什么字符串转换的异常,类型转换的异常,一直在伴随着我们这些cpp新手,只能说一句,坚持就是胜利!呵呵~~

  后记:

  也是过年了,好好享受一下假期,所以可能下一节的内容会在节后更新,感谢大家的支持!

  出处:http://longqi293.cnblogs.com

  本文示例源代码或素材下载

编缉推荐阅读以下文章

  • 用C++开发WM应用系列(4)——处理屏幕旋转
  • 用C++开发WM应用系列(2)——拨打电话
  • 用C++开发WM应用系列(1)——"Hello World" Pro!(下)
  • 用C++开发WM应用系列(1)——"Hello World" Pro!(上)
其它资源
来源声明

版权与免责声明
1、本站所发布的文章仅供技术交流参考,本站不主张将其做为决策的依据,浏览者可自愿选择采信与否,本站不对因采信这些信息所产生的任何问题负责。
2、本站部分文章来源于网络,其版权为原权利人所有。由于来源之故,有的文章未能获得作者姓名,署“未知”或“佚名”。对于这些文章,有知悉作者姓名的请告知本站,以便及时署名。如果作者要求删除,我们将予以删除。除此之外本站不再承担其它责任。
3、本站部分文章来源于本站原创,本站拥有所有权利。
4、如对本站发布的信息有异议,请联系我们,经本站确认后,将在三个工作日内做出修改或删除处理。
请参阅权责声明