用C++開發WM應用系列文章索引
引言:
在上一節中,我們通過了一個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的電話正在通話中了!
總結:
我們學會了:
- 為程式完成特定功能添加引用
- 撥打到電話方法的使用
- 修改控制項的基本屬性
問題:
我們也看到:
- 撥號很死板,應該要靈活設定號碼
- ... ...
後記:
在接下來的一節中,我們將來改進一下這個程式,讓他的撥號支援我們的輸入,以及添加一個傳送簡訊的功能在裡面,屆時我們又可以多學幾個控制項以及方法的使用。