《Windows CE應(yīng)用程序設(shè)計》課件第1章_第1頁
《Windows CE應(yīng)用程序設(shè)計》課件第1章_第2頁
《Windows CE應(yīng)用程序設(shè)計》課件第1章_第3頁
《Windows CE應(yīng)用程序設(shè)計》課件第1章_第4頁
《Windows CE應(yīng)用程序設(shè)計》課件第1章_第5頁
已閱讀5頁,還剩122頁未讀, 繼續(xù)免費閱讀

下載本文檔

版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請進行舉報或認(rèn)領(lǐng)

文檔簡介

第一章WindowsCE程序框架1.1程序設(shè)計環(huán)境1.2WindowsCE程序工作方式1.3WindowsCE程序框架1.4程序框架的解釋1.5匈牙利表示法1.6VisualStudio開發(fā)環(huán)境1.7EmbeddedVisualC++開發(fā)環(huán)境1.8小結(jié)

1.1程序設(shè)計環(huán)境

WindowsCE程序設(shè)計平臺是基于VisualStudio2005/2008或EmbeddedVisualC++4.0SP4開發(fā)環(huán)境的,同時,需要具有WindowsCE操作系統(tǒng)模擬器或智能設(shè)備模擬器,特別是PocketPC2005模擬環(huán)境或WindowsMobile6模擬環(huán)境。

1.2WindowsCE程序工作方式

WindowsCE程序采用所謂的消息響應(yīng)工作方式,這也是桌面Windows程序的工作方式,即WindowsCE操作系統(tǒng)管理設(shè)備的一切資源。

1.3WindowsCE程序框架

筆者得益于DouglasBoling先生的《ProgrammingMicrosoftWindowsCE.NET》一書,當(dāng)然,10年前從Petzold先生的書中也得到了類似的啟發(fā)。WindowsCE程序設(shè)計具有明顯的框架特性,任何復(fù)雜的程序設(shè)計都可以以此框架為基礎(chǔ),通過添加窗口和消息處理過程來完成。

該框架程序運行結(jié)果如圖1-1所示。圖1-1框架程序在WindowsMobile6仿真器上的運行結(jié)果

1.4程序框架的解釋

這里再次強調(diào)一下WindowsCE程序的工作原理:WindowsCE操作系統(tǒng)仍然是窗口操作系統(tǒng),即界面上的各種元素都是窗口,不但對話框等窗體屬于窗口,各種控件也都屬于窗口,這些窗口接收到WindowsCE操作系統(tǒng)發(fā)送來的事件消息后,指示W(wǎng)indowsCE操作系統(tǒng)調(diào)用窗口的窗口過程,這個窗口過程就是窗口的事件消息處理程序;WindowsCE操作系統(tǒng)調(diào)用窗口過程時,會把窗口句柄、消息ID號和與消息相關(guān)的兩個32位參數(shù)傳遞給窗口過程;窗口過程的執(zhí)行就是對傳遞來的各種消息做出響應(yīng)和處理。因此,WindowsCE程序工作在事件消息驅(qū)動模式下??梢韵胂笠幌?,顯示屏是前臺,WindowsCE操作系統(tǒng)是后臺,前臺與后臺之間通過一條電話線連接,通過電話線前臺與后臺可以交互通信。但是,只能后臺向前臺撥號,即通信建立的方式是:后臺WindowsCE操作系統(tǒng)主動發(fā)送消息到窗口,窗口被動地收到消息后告訴WindowsCE操作系統(tǒng)它的窗口過程在哪里;然后,WindowsCE操作系統(tǒng)再去執(zhí)行相應(yīng)的窗口過程。當(dāng)然,WindowsCE操作系統(tǒng)在執(zhí)行窗口過程前可以進行適當(dāng)?shù)某跏蓟ぷ?。因此,編寫WindowsCE程序的關(guān)鍵是創(chuàng)建窗口,并編寫窗口過程。下面回到上一節(jié)提到的程序框架,首先看一下主程序入口文件myFirst.c。

主程序入口文件包括的頭文件名是myFirst.h,在myFirst.h里面定義的以下部分是主程序入口文件用到的,即

#include<windows.h>

intregisterWnd(HINSTANCE);

intshowMainWnd(HINSTANCE,LPWSTR,int);

intquitMainWnd(HINSTANCE,int);

windows.h頭文件是所有的WindowsCE程序必須包括的頭文件,是WindowsCE的預(yù)定義常量、類型和過程的聲明文件。主程序入口文件中包括一個主過程,即WinMain過程,如下:

intWINAPIWinMain(HINSTANCEhInstance,

HINSTANCEhPrevInstance,

LPWSTRlpCmdLine,intnShowCmd)

WinMain過程源碼的第一步是定義一個MSG結(jié)構(gòu)體對象msg,該結(jié)構(gòu)體定義如下:

WinMain過程源碼的第二步是調(diào)用自定義的registerWnd過程注冊窗口類,該過程體位于mainWndProc.c中,過程體如下:

WinMain過程源碼的第三步為調(diào)用自定義過程showMainWnd創(chuàng)建主窗口并顯示主窗口。showMainWnd的過程體位于mainWndProc.c中,過程體如下:該過程首先定義一個窗口句柄hWnd,然后使用全局變量hInst存儲程序?qū)嵗浔?,接著調(diào)用系統(tǒng)過程CreateWindow創(chuàng)建窗口,CreateWindow過程的原型如下:

WinMain過程的第四步為消息循環(huán),使用GetMessage過程獲取WindowsCE操作系統(tǒng)發(fā)送來的消息。GetMessage過程原型如下:

WinMain過程的第五步,即最后一步為調(diào)用自定義過程quitMainWnd關(guān)閉主窗口,退出程序。該過程體位于mainWndProc.c中,過程體如下:首先是包括自定義頭文件myFirst.h,這個頭文件將稍后再作解釋。

然后定義全局常量字符串TEXT(“myFirst”)作為主窗口類名,接著定義全局應(yīng)用程序?qū)嵗浔鷋Inst。

接著定義結(jié)構(gòu)體消息查找表,這里自定義類型MessageProc是在頭文件myFirst.h中聲明的,具體如下:這里定義了四個消息的消息處理過程,在此,稍微多說幾句,談一下都是什么情況下WindowsCE操作系統(tǒng)才會產(chǎn)生并發(fā)送這四個消息,并且具體地闡明這四個消息的參數(shù)都是什么值。

(1)?WM_CREATE消息:當(dāng)應(yīng)用程序調(diào)用CreateWindowEx或CreateWindow過程創(chuàng)建窗口時,在窗口被顯示之前,WindowsCE操作系統(tǒng)向新創(chuàng)建的窗口發(fā)送WM_CREATE消息,其原型如下:

WM_CREATElpcs=(LPCREATESTRUCT)lParam;

(2)?WM_PAINT消息:在介紹這個消息之前,需要介紹一個客戶區(qū)有效和無效的概念??蛻魠^(qū)在前文中已提到過,是指由用戶管理和維護的窗口顯示區(qū)域,當(dāng)窗口顯示后,如果有其他的窗口顯示在其上,其他的窗口將遮擋一部分該窗口,被遮擋的這部分窗口即稱為無效區(qū)域,當(dāng)上面的窗口關(guān)閉后,這部分無效區(qū)域必須進行重新繪制,這時WindowsCE操作系統(tǒng)向當(dāng)前窗口發(fā)送WM_PAINT消息。

WM_PAINT消息原型如下:

WM_PAINThdc=(HDC)wParam;

該消息只有wParam參數(shù),沒有l(wèi)Param參數(shù)。

hdc指向需要繪圖的設(shè)備環(huán)境,如果為NULL,則使用缺省的設(shè)備環(huán)境繪圖。設(shè)備環(huán)境由wParam參數(shù)傳遞。

(3)?WM_DESTROY消息:當(dāng)窗口被破壞和關(guān)閉時,例如,用戶用任務(wù)管理器關(guān)閉正在運行的程序時,窗口將收到WM_DESTROY消息,由于WindowsCE的DefWindowProc過程不會自動地處理WM_DESTROY消息,所以需要編寫該消息的處理過程,即收到該消息后,執(zhí)行自定義過程goDestroyMain,破壞主窗口后,所有主窗口的子窗口自動被破壞和關(guān)閉。WM_DESTROY消息的原型如下:

WM_DESTROYwParam=0;

lParam=0;

該消息的wParam和lParam參數(shù)均為0。

(4)?WM_CLOSE消息:窗口或應(yīng)用程序結(jié)束時系統(tǒng)產(chǎn)生WM_CLOSE消息。本實例中,點擊窗口右上角的Close按鈕“×”將導(dǎo)致系統(tǒng)產(chǎn)生并發(fā)送WM_CLOSE消息。WM_CLOSE消息的原型如下:

WM_CLOSEwParam=0;

lParam=0;

該消息的wParam和lParam參數(shù)均為0。此外,自定義的消息處理過程的返回值建議為0,本實例中所有消息處理過程的最后一條語句均為

return0;

當(dāng)然,其他的正整數(shù)型返回值也是可以用的,只是-1是不能使用的。WindowsCE約定返回值為0表示消息處理成功,可以繼續(xù)新的消息接收和處理過程。主窗口過程如下:熟悉了窗口過程對消息處理的方式之后,下面逐個介紹本實例中的四個消息處理過程。

第一個為goCreateMain,前文也提到過消息處理過程名稱的命名方法,這里再強調(diào)一下,即go+首字母大寫的消息名+首字母大寫的窗口名。盡管如此,消息處理過程是可以隨意取合法的名稱的,而且這個名稱與變量名的命名方法相同。每個消息處理過程的參數(shù)都相同,并且與窗口過程的參數(shù)表相同,這樣做是為了可以使用消息查找表的方法而設(shè)計的。當(dāng)然,對于某些消息的處理過程,其參數(shù)表可以與窗口過程不同。這種使用消息查找表循環(huán)定位消息號與消息處理過程的方法,是DouglasBoling先生的書上使用的,筆者參考使用了這一技巧,同時,筆者建議讀者也采用這種方法。

goCreateMain過程體如下:在goCreateMain中,首先定義了一個窗口句柄wndCB,調(diào)用CommandBar_Create過程創(chuàng)建一個命令欄控件,該過程的聲明在頭文件commctrl.h中,其原型如下:在goCreateMain中的CommandBar_Create調(diào)用中,全局程序?qū)嵗齢Inst(與形參形式相同)、主窗口句柄hWnd和在頭文件myFirst.h中宏定義的整型量IDC_CMDBAR依次傳遞給形參。這里IDC_CMDBAR是自定義的命令欄ID號,必須是程序中獨一無二的整型數(shù),該整型數(shù)不能再用于表示同一程序文件中其他控件的ID號。然后,調(diào)用CommandBar_AddAdornments過程在命令欄上創(chuàng)建一個Close按鈕,該過程的原型如下:最后一個參數(shù)dwReserved為保留參數(shù),設(shè)為0。

goPaintMain為WM_PAINT消息的處理過程,其過程體如下:

goPaintMain過程首先定義了畫板ps、矩形區(qū)rect和設(shè)備環(huán)境hdc。畫板ps結(jié)構(gòu)體對象包含了繪制窗口客戶區(qū)域所用的繪圖信息,其聲明如下:矩形區(qū)RECT結(jié)構(gòu)體的聲明如下:

typedefstruct_RECT{LONGleft;LONGtop;LONGright;LONGbottom;}RECT;四個形參分別表示矩形區(qū)域的左邊界、上邊界、右邊界和下邊界,最左上角的點的坐標(biāo)為(LEFT,TOP),最右下角的點的坐標(biāo)為(RIGHT,BOTTOM)。在WindowsCE屏幕坐標(biāo)中,例如對于240×320的顯示屏,則左上角坐標(biāo)為(0,0),而右下角為(239,319),而對于定義的任何矩形區(qū)域來說,必須保證RIGHT>LEFT,BOTTOM>TOP。圖1-2中表示了客戶區(qū)的坐標(biāo)體系。圖1-2客戶區(qū)坐標(biāo)體系

goPaintMain過程接著使用GetClientRect過程得到當(dāng)前繪圖用的窗口客戶區(qū),GetClientRect過程的原型如下:

BOOLGetClientRect(HWNDhWnd,LPRECTlpRect);

其中,hWnd為繪圖客戶區(qū)所在的窗口句柄,lpRect為一個長指針,指向代表客戶區(qū)大小的矩形RECT結(jié)構(gòu)體對象。本實例中調(diào)用GetClientRect(hWnd,&rect)之后,rect矩形區(qū)的左上角和右下角的坐標(biāo)點限制了繪圖客戶區(qū)域的大小,即繪圖客戶區(qū)的左邊界為rect.left,頂邊界為rect.top,右邊界為rect.right,底邊界為rect.bottom。由于客戶區(qū)的頂部為命令欄,真正的繪圖客戶區(qū)應(yīng)該為此命令欄下方的區(qū)域,故通過以下語句將客戶區(qū)的頂部下移命令欄的高度,即

rect.top+=CommandBar_Height(GetDlgItem(hWnd,IDC_CMDBAR));

CommandBar_Height過程取得命令欄的高度值,以像素點為單位,其原型如下:

intCommandBar_Height(HWNDhwndCB);

其中,hwndCB為命令欄的窗口句柄。一般地,返回的命令欄的高度值約為26。

GetDlgItem過程的原型如下:

HWNDGetDlgItem(HWNDhDlg,intnIDDlgItem);

其中,hDlg指向控件的父窗口;nIDDlgItem指定控件的ID號。這里使用IDC_CMDBAR參數(shù)調(diào)用該過程可取得主窗口中的命令欄窗口句柄。

然后,調(diào)用BeginPaint過程獲得繪圖窗口的設(shè)備環(huán)境hdc,并將繪圖信息填充到畫板ps中,如下:

hdc=BeginPaint(hWnd,&ps);

BeginPaint過程的原型如下:

HDCBeginPaint(HWNDhwnd,LPPAINTSTRUCTlpPaint);

其中,hwnd為繪圖的窗口句柄;lpPaint為指向畫板結(jié)構(gòu)的長指針,調(diào)用結(jié)束后將被填充繪圖信息。

WindowsCE程序?qū)τ谫Y源的管理十分有規(guī)律,一些共用資源被開辟出來后,必須在使用完后釋放,以供其他過程使用。例如,這里的BeginPaint過程獲得了設(shè)備環(huán)境hdc資源,在使用完后,必須調(diào)用EndPaint過程釋放hdc。因此,可以說BeginPaint和EndPaint是配對使用的過程。WindowsCE中有很多配對使用的過程。在我們對各種資源有更充分的認(rèn)識和理解之前,可以把WindowsCE的資源理解為內(nèi)存中的關(guān)鍵存儲區(qū)域。

EndPaint過程的調(diào)用比較固定,如下:

EndPaint(hWnd,&ps);

在BeginPaint和EndPaint之間為繪圖的語句,本實例中只有一條語句,即在窗口中央顯示一行文字“學(xué)好WindowsCE程序設(shè)計!”,如下:

DrawText(hdc,TEXT(“學(xué)好WindowsCE程序設(shè)計!”),-1,&rect,

DT_CENTER|DT_VCENTER|DT_SINGLELINE);

DrawText過程用于在矩形區(qū)中顯示文本,其原型如下:在WindowsCE中對文本輸出的支持函數(shù)較少,除了DrawText過程外,還有一個更加常用的ExtTextOut過程,ExtTextOut過程使用當(dāng)前選擇的字體在矩形區(qū)中輸出文本,其原型如下:下面接著介紹goDestroyMain消息處理過程,其過程體如下:當(dāng)主窗口收到WM_DESTROY消息后,將調(diào)用該過程,該過程將執(zhí)行PostQuitMessage過程,導(dǎo)致窗口收到WM_QUIT消息。PostQuitMessage過程的原型如下:

voidPostQuitMessage(intnExitCode);

其中,nExitCode整型數(shù)傳遞給WM_QUIT消息的wParam參數(shù)。當(dāng)用戶點擊右上角的Close按鈕時,主窗口即收到WM_CLOSE消息,執(zhí)行g(shù)oCloseMain消息處理過程,其過程體如下:

goCloseMain過程將調(diào)用MessageBox過程創(chuàng)建一個簡單消息對話框。MessageBox過程原型如下:此外,缺省設(shè)置MB_APPLMODAL表示消息對話框為有模式對話框。所謂的有模式對話框是指當(dāng)對話框打開后,對話框會擁有焦點,表現(xiàn)為對話框的標(biāo)題欄顏色加深,如果不關(guān)閉該模式對話框,則不能對其父窗口進行操作。對立概念的無模式對話框則在不關(guān)閉對話框的情況下,可以對其父窗口操作,典型的例子是OfficeWord軟件中的查找對話框即為無模式對話框。如果消息對話框不在窗口頂層顯示,還可以指定MB_SETFOREGROUND使消息對話框浮到頂層顯示,或指定MB_TOPMOST限制對話框總處于頂層顯示。

消息對話框返回0表示創(chuàng)建對話框失敗,否則,將返回預(yù)定義的按鈕ID號,例如,IDABORT、IDCANCEL、IDIGNORE、IDNO、IDOK、IDRETRY或IDYES,表示對應(yīng)的按鈕被按下了。

本實例中創(chuàng)建的對話框如圖1-3所示,該對話框?qū)⒎祷豂DYES或IDNO,取決于用戶點擊哪個按鈕。

當(dāng)用戶點擊“否”按鈕時,對話框返回IDNO,則調(diào)用return0返回;否則,調(diào)用PostQuitMessage(1)導(dǎo)致主窗口接收WM_QUIT消息,退出程序。圖1-3包含兩個按鈕的消息對話框

1.5匈牙利表示法

由于WindowsCE支持長變量名,所以,變量名或過程名的命名應(yīng)盡可能地做到見名知意,此外,可以采用約定的匈牙利表示法,在變量名或過程名等標(biāo)識符前加上一個表示變量類型或返回值類型的小寫字母或字母組合前綴,將使得變量名和程序更易讀懂。

一般地,匈牙利表示法對前綴的定義如表1-1所示。

1.6VisualStudio開發(fā)環(huán)境

讀到這里,可能有些讀者急于上機調(diào)試一下本章的程序了。本節(jié)和1.7節(jié)將給出實現(xiàn)和運行WindowsCE程序的具體方法和步驟。

WindowsCE程序設(shè)計可以基于多種開發(fā)環(huán)境,這里重點介紹兩種,即VisualStudio2008和EmbeddedVisualC++4.0SP4。本節(jié)將介紹VisualStudio2008,下一節(jié)將介紹EmbeddedVisualC++4.0SP4。在WindowsXP或Vista上安裝VisualStudio2008是件簡單愉快的事情,選好安裝目錄后,按照安裝提示一步步地進行,便可安裝完成。安裝完成后,在Windows開始菜單中會有MicrosoftVisualStudio2008的快捷啟動菜單項,點擊便可進入VisualStudio2008(簡稱VS9。之所以簡稱VS9,是因為VisualStudio2008的版本號是9.0),如圖1-4

所示。

在圖1-4中點擊“文件?|?新建?|?項目”,進入圖1-5所示界面。圖1-4VS9啟動界面圖1-5VS9新建項目對話框在如圖1-5所示的“新建項目”對話框中,選擇“VisualC++?|?智能設(shè)備?|?Win32智能設(shè)備項目”,在“名稱”一欄中輸入項目名稱為myFirstWithVS9,點選右上角的下拉列表框,選中“.NETFramework2.0”(如果選擇?.NETFramework3.5,且使用外部智能手機設(shè)備進行程序設(shè)計,VS9會自動在智能手機上安裝?.NETFramework3.5軟件包)。點擊“確定”按鈕進入下一步,如圖1-6所示。圖1-6Win32智能設(shè)備項目向?qū)c擊圖1-6左側(cè)的“平臺”,并把“WindowsMobile5.0PocketPCSDK”和“WindowsMobile6ProfessionalSDK”選到右邊的“選定的SDK”欄中,如圖1-7所示。圖1-7Win32智能設(shè)備項目向?qū)脚_設(shè)置點擊圖1-7中的“下一步”按鈕或“應(yīng)用程序設(shè)置”,選中復(fù)選框“空項目”。如圖1-8所示。圖1-8Win32智能設(shè)備項目設(shè)置點擊圖1-8中的“完成”按鈕結(jié)束“Win32智能設(shè)備項目向?qū)?-?myFirstWithVS9”的設(shè)置,進入如圖1-9所示界面。圖1-9myFirstWithVS9空項目點擊圖1-10所示的“文件?|?新建?|?文件”菜單,得到如圖1-11所示“新建文件”對話框。圖1-10文件菜單選項圖1-11“新建文件”對話框在圖1-11中選擇“VisualC++?|?頭文件(.h)”,點擊“打開”按鈕,然后編寫頭文件,并存盤為myFirst.h,如圖1-12所示。接著,選擇菜單“文件?|?將myFirst.h移入(I)?|?1myFirstWithVS9(1)”,把頭文件加入到當(dāng)前項目中。按照上述方法,依次編寫myFirst.cpp和mainWndProc.cpp文件,并把這兩個文件加入到項目中,如圖1-13所示。圖1-12新建myFirst.h頭文件圖1-13myFirstWithVS9工程文件注意這里程序文件的擴展名為?.cpp。

然后,按圖1-14和圖1-15所示選取WindowsMobile6為程序工作平臺,這需要外接WindowsMobile6智能設(shè)備,這里使用了一臺WindowsMobile6PPC智能手機。圖1-14選取WindowsMobile6ProfessionalSDK圖1-15選取WindowsMobile6ProfessionalDevice通過USB口將WindowsMobile6智能手機與計算機連接。對于WindowsXP系統(tǒng),計算機上需要安裝軟件MicrosoftActiveSync4.5,連接成功后,如圖1-16所示。圖1-16MicrosoftActiveSync為了向讀者展示在WindowsMobile6智能手機上的運行結(jié)果,我們使用了掌智手機助手軟件,該軟件可以把手機屏幕截取到計算機上。如圖1-17和圖1-18所示。圖1-17掌智手機助手圖1-18掌智手機助手屏幕截取圖下面,我們再回到VS9來,如圖1-19所示,點擊菜單“生成(B)?|?生成解決方案(B)”或按F6,則會編譯連接整個項目,如果有語法錯誤,請逐個改正。如果生成成功,會在圖1-19所示窗口的左下角顯示“已保存的項”的地方,顯示“生成成功”。過一會兒后,會顯示“就緒”。

接著,如圖1-20所示,點擊菜單“生成(B)?|?部署解決方案(D)”。圖1-19生成解決方案圖1-20部署解決方案稍后,在圖1-20左下角的狀態(tài)欄中顯示“就緒”的地方,會顯示“部署已成功”,表示程序已成功下載到了WindowsMoblie6智能手機上。如圖1-21所示,可見程序自動部署(或下載)到了智能手機的ProgramFiles目錄下的同名目錄(myFirstWithVS9)下。

有兩種方法可在WindowsMobile6手機上執(zhí)行myFirstWithVS9程序。方法一如圖1-21和圖1-22所示,

在圖1-22所示的手機屏幕上,用觸摸筆點擊myFirstWithVS9,即可在手機上運行該程序,運行結(jié)果如圖1-23和圖1-24所示。圖1-24為點擊屏幕左上角的Close按鈕后彈出的消息對話框。

圖1-21智能手機ProgramFiles目錄圖1-22智能手機myFirstWithVS9目錄圖1-23程序運行結(jié)果

圖1-24程序彈出的消息對話框方法二如圖1-25所示。點擊菜單“調(diào)試(D)?|?開始執(zhí)行(不調(diào)試)(H)”或按Ctrl+F5,則直接在智能手機上執(zhí)行程序。如圖1-26和圖1-27所示。圖1-25調(diào)試菜單項圖1-26掌智手機助手截圖運行結(jié)果

圖1-27運行結(jié)果如果不使用WindowsMobile6智能手機設(shè)備,可以選用圖1-15中的“CHSWindowsMobileProfessionalEmulator”,表示中文版的WM6專業(yè)仿真器,WindowsMobile6簡稱為WM6。然后,選擇“生成(B)?|?部署解決方案(D)”,部署成功后,會彈出WM6中文版仿真器,如圖1-28所示。一般地,仿真器上能正常運行的程序,在WM6智能手機設(shè)備上仍然能正常運行,因此,中文版WM6仿真器是調(diào)試WindowsCE程序的首選。在中文版WM6仿真器上運行myFirstWithVS9工程,也有兩種方法。方法一:首先,按圖1-29所示選擇菜單“文件?|?配置”,進入圖1-30。在圖1-30中,設(shè)置“共享文件夾”為“D:\MyCEBook\chap01\myFirstWithVS9\myFirstWithVS9\

WindowsMobile6ProfessionalSDK(ARMV4I)”,即為myFirstWithVS9項目的目錄。該目錄將作為WM6仿真器的存儲卡“StorageCard”,如圖1-31和圖1-32所示。圖1-28中文版WM6仿真器

圖1-29文件菜單圖1-30仿真程序?qū)傩詫υ捒驁D1-31資源管理器

圖1-32StorageCard下的Release目錄在圖1-32中,點擊“myFirstWithVS9”可執(zhí)行文件,程序執(zhí)行結(jié)果如圖1-33和圖1-34所示。

圖1-33WM6仿真器上程序運行結(jié)果

圖1-34點擊命令欄上關(guān)閉按鈕的響應(yīng)結(jié)果借助中文版WM6仿真器執(zhí)行myFirstWithVS9項目的另一種方法是點擊圖1-25中的菜單“調(diào)試(D)?|?開始執(zhí)行(不調(diào)試)(H)”,這時直接在WM6仿真器上執(zhí)行myFirstWithVS9項目,如圖1-35所示。圖1-35程序運行結(jié)果要把VS9集成開發(fā)環(huán)境完整、細(xì)致地介紹一下,是件很費篇幅且不太容易的事情。更深入地了解VS9集成開發(fā)環(huán)境的使用方法,還要靠平時不間斷地使用VS9進行程序設(shè)計。本書第二章起的所有程序,均使用VS9進行開發(fā)和調(diào)試。

1.7EmbeddedVisualC++開發(fā)環(huán)境

這里還要介紹一種使用經(jīng)典的EmbeddedVisualC++?集成開發(fā)環(huán)境進行WindowsCE程序設(shè)計的方法。EmbeddedVisualC++?簡稱EVC,有時也寫做eVC。EVC體積小,是專用于開發(fā)WindowsCE程序的集成開發(fā)環(huán)境,因此使用EVC開發(fā)更加簡單易行。安裝EVC軟件只需花幾分鐘時間就可以了,需要同時安裝標(biāo)準(zhǔn)的StandardSDK仿真器和PocketPC2003SDK仿真器。EVC編寫的程序同樣可以運行在WM6智能設(shè)備上。安裝完成后,WindowsXP的開始菜單中會出現(xiàn)“MicrosofteMbeddedVisualC++4.0?|?eMbeddedVisualC++4.0”快捷菜單,點擊后進入EVC集成開發(fā)環(huán)境,如圖1-36所示。

如圖1-37所示,選擇菜單“File?|?New”,進入圖1-38。圖1-36EVC環(huán)境主界面圖1-37File菜單項圖1-38新建工程對話框在圖1-38中,選擇“WCEPocketPC2003Application”,在“Projectname”欄中輸入myFirstEVC,然后點擊“OK”,進入圖1-39。選擇單選鈕“Anemptyproject”,然后點擊“Finish”,將彈出圖1-40所示的工程信息對話框,點擊“OK”,進入圖1-41。之后,在圖1-41所示界面上編寫myFirst.h、myFirst.c和mainWndProc.c程序。

圖1-39WCEPocketPC2003應(yīng)用程序向?qū)?/p>

圖1-40工程信息圖1-41工程文件主界面在圖1-41中的工具條上,選擇POCKETPC2003、Win32(WCEARMV4)Release和POCKETPC2003Emulator。然后,如圖1-42所示,點擊菜單“Build?|?B

溫馨提示

  • 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
  • 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
  • 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁內(nèi)容里面會有圖紙預(yù)覽,若沒有圖紙預(yù)覽就沒有圖紙。
  • 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
  • 5. 人人文庫網(wǎng)僅提供信息存儲空間,僅對用戶上傳內(nèi)容的表現(xiàn)方式做保護處理,對用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對任何下載內(nèi)容負(fù)責(zé)。
  • 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請與我們聯(lián)系,我們立即糾正。
  • 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時也不承擔(dān)用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。

評論

0/150

提交評論