接上一节,我们学会了如何在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按钮的代码:
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模拟器有拨打电话的动作了: