資源描述:
《簡(jiǎn)單的windows應(yīng)用程序》由會(huì)員上傳分享,免費(fèi)在線(xiàn)閱讀,更多相關(guān)內(nèi)容在教育資源-天天文庫(kù)。
1、先來(lái)看兩個(gè)簡(jiǎn)單的Windows應(yīng)用程序。[例1]一個(gè)最簡(jiǎn)單的Windows應(yīng)用程序(1)運(yùn)行MicrosoftVisualC++6.0后,選擇“文件”→“新建”菜單命令,打開(kāi)應(yīng)用程序向?qū)?,顯示出“新建”對(duì)話(huà)框。單擊“工程”標(biāo)簽,從列表框中選中Win32Application(Win32應(yīng)用程序)項(xiàng),如圖所示。Windows應(yīng)用實(shí)踐---Windows程序結(jié)構(gòu)Windows應(yīng)用實(shí)踐(2)在工程框中輸入Win32應(yīng)用程序項(xiàng)目名稱(chēng)Ex_HelloMsg。在“位置”下的編輯框中直接輸入文件夾名稱(chēng)(3)單擊“確定”按鈕繼續(xù)。一個(gè)詢(xún)問(wèn)項(xiàng)目類(lèi)型的Win3
2、2應(yīng)用程序向?qū)⒈伙@示,選中“Anemptyproject”(一個(gè)空的工程)項(xiàng)。單擊“完成”按鈕,系統(tǒng)將顯示AppWizard(應(yīng)用程序向?qū)В┑膭?chuàng)建信息,單擊“確定”按鈕系統(tǒng)將自動(dòng)創(chuàng)建此應(yīng)用程序。(4)再次選擇“文件”→“新建”菜單命令,顯示出“新建”對(duì)話(huà)框。單擊“文件”標(biāo)簽,在左邊的列表框中選擇C++SourceFile項(xiàng),在右邊的“文件”下的編輯框中鍵入Ex_HelloMsg.cpp,單擊“確定”按鈕,如圖所示。Windows應(yīng)用實(shí)踐(5)在文檔窗口中輸入下面的代碼:#includeintWINAPIWinMain
3、(HINSTANCEhInstance,HINSTANCEhPrevInstance,LPSTRlpCmdLine,intnCmdShow){MessageBox(NULL,"你好,我的VisualC++世界!","問(wèn)候",0);return0;}(6)編譯并運(yùn)行程序。從上面的程序可以看出:控制臺(tái)應(yīng)用程序是以main函數(shù)作為進(jìn)入程序的初始入口點(diǎn),但在Windows應(yīng)用程序中,main函數(shù)被WinMain函數(shù)取而代之,WinMain函數(shù)的原型如下:intWINAPIWinMain(HINSTANCEhInstance,//當(dāng)前實(shí)例句柄HINS
4、TANCEhPrevInstance,//以前的實(shí)例句柄LPSTRlpCmdLine,//指向命令行參數(shù)的指針intnCmdShow//窗口的顯示狀態(tài))Windows應(yīng)用實(shí)踐這里出現(xiàn)了一個(gè)新的概念—“句柄”(handle),所謂句柄是一個(gè)標(biāo)識(shí)Windows資源(如菜單、圖標(biāo)、窗口等)和設(shè)備等對(duì)象的變量,或者是一個(gè)對(duì)操作系統(tǒng)資源的間接引用。每一個(gè)Win32應(yīng)用程序都需要Windows.h頭文件,它還包含了其他的一些Windows頭文件。這些頭文件定義了Windows的所有數(shù)據(jù)類(lèi)型、函數(shù)調(diào)用、數(shù)據(jù)結(jié)構(gòu)和符號(hào)常量。程序中,MessageBox是一
5、個(gè)Win32API(ApplicationProgrammingInterface,應(yīng)用程序接口)函數(shù),用來(lái)彈出一個(gè)對(duì)話(huà)框窗口,顯示短信息。該函數(shù)第一個(gè)參數(shù)用來(lái)指定父窗口句柄,即對(duì)話(huà)框所在的窗口句柄。第二、三個(gè)參數(shù)分別用來(lái)指定顯示的消息內(nèi)容和對(duì)話(huà)框窗口的標(biāo)題,最后一個(gè)參數(shù)用來(lái)指定在對(duì)話(huà)框中顯示的按鈕。[例Ex_HelloWin]一個(gè)較完整的Windows應(yīng)用程序(1)創(chuàng)建一個(gè)Anemptyproject類(lèi)型的Win32Application(Win32應(yīng)用程序)項(xiàng)目Ex_HelloWin。(2)選擇“文件”→“新建”菜單命令,顯示出“新建”
6、對(duì)話(huà)框。單擊“文件”標(biāo)簽,在左邊的列表框中選擇C++SourceFile項(xiàng),在右邊的“文件”框中鍵入Ex_HelloWin.cpp,單擊“確定”按鈕。(3)在文檔窗口中輸入下面的代碼:與Ex_HelloMsg示例相比,Ex_HelloWin要復(fù)雜得多,但總可以將其分解成是兩個(gè)基本函數(shù)的程序結(jié)構(gòu)。一個(gè)是WinMain函數(shù),另一個(gè)是用戶(hù)定義的窗口過(guò)程函數(shù)WndProc。窗口過(guò)程函數(shù)WndProc用來(lái)接收和處理各種不同的消息,而WinMain函數(shù)通常要完成以下幾步工作。①定義并調(diào)用API函數(shù)RegisterClass注冊(cè)應(yīng)用程序的窗口類(lèi)。②調(diào)用相
7、關(guān)API函數(shù)創(chuàng)建和顯示窗口,并進(jìn)行其他必要的初始化處理。其中,函數(shù)CreateWindow用來(lái)創(chuàng)建已注冊(cè)窗口類(lèi)的窗口。Windows每一個(gè)窗口都有一些基本屬性,如窗口標(biāo)題、窗口位置和大小、應(yīng)用程序圖標(biāo)、鼠標(biāo)指針、菜單和背景顏色等。窗口類(lèi)就是充當(dāng)這些屬性的模板。CreateWindow函數(shù)具有下列原型:HWNDCreateWindow(LPCTSTRlpClassName,//已注冊(cè)的窗口類(lèi)名LPCTSTRlpWindowName,//窗口標(biāo)題DWORDdwStyle,//窗口風(fēng)格intx,//窗口的水平位置inty,//窗口的垂直位置int
8、nWidth,//窗口寬度intnHeight,//窗口高度HWNDhWndParent,//父窗口句柄HMENUhMenu,//菜單句柄或控件標(biāo)識(shí)HINSTANCEhInsta