版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請(qǐng)進(jìn)行舉報(bào)或認(rèn)領(lǐng)
文檔簡(jiǎn)介
1、預(yù)備知識(shí),C+與VC+ 基于控制臺(tái)的應(yīng)用程序(C+) Windows應(yīng)用程序的開發(fā) MFC應(yīng)用程序設(shè)計(jì),Windows編程特點(diǎn),1消息驅(qū)動(dòng)機(jī)制 基于Windows程序和基于控制臺(tái)應(yīng)用程序之間的一個(gè)最根本區(qū)別,就在于控制臺(tái)應(yīng)用程序是通過調(diào)用系統(tǒng)的函數(shù)來獲得用戶輸入的,而Windows程序則是通過系統(tǒng)發(fā)送的消息來處理用戶輸入的。 在Windows操作環(huán)境中,無論是系統(tǒng)產(chǎn)生的動(dòng)作或是用戶運(yùn)行應(yīng)用程序產(chǎn)生的動(dòng)作,都稱為事件(Events)產(chǎn)生的消息(Message)。例如,在Windows 桌面(傳統(tǒng)風(fēng)格)上,雙擊應(yīng)用程序的快捷圖標(biāo),系統(tǒng)就會(huì)執(zhí)行該應(yīng)用程序。在Windows的應(yīng)用程序中,也是通過接收消
2、息、分發(fā)消息、處理消息來和用戶進(jìn)行交互的。這種消息驅(qū)動(dòng)的機(jī)制是Windows編程的最大特點(diǎn)。,2圖形設(shè)備接口(GDI) 在控制臺(tái)應(yīng)用程序中,想要在屏幕或打印機(jī)上顯示或打印一幅圖形是一件非常復(fù)雜的事件,因?yàn)橛脩舯仨毎凑掌聊环直媛誓J揭约皩S美L圖函數(shù)庫(kù)調(diào)用相應(yīng)的函數(shù)在屏幕上繪圖,或根據(jù)打印機(jī)類型或指令規(guī)則向打印機(jī)輸送數(shù)據(jù)。而Windows提供了一個(gè)抽象的接口,稱為圖形設(shè)備接口(Graphical Device Interface,GDI),使得用戶直接利用系統(tǒng)的GDI函數(shù)就能方便地實(shí)現(xiàn)圖形和文本的輸出,而不必關(guān)心與系統(tǒng)相連的外部設(shè)備的類型。,3基于資源的程序設(shè)計(jì) Windows應(yīng)用程序常常包含眾多
3、圖形元素,例如光標(biāo)、菜單、工具欄、位圖、對(duì)話框等。每一個(gè)這樣的資源都用相應(yīng)的標(biāo)識(shí)符來區(qū)分,而且Windows內(nèi)部也有預(yù)定義的資源,例如在Ex_HelloWin中,LoadIcon和LoadCursor函數(shù)將系統(tǒng)內(nèi)部的IDI_APPLICATION(應(yīng)用程序圖標(biāo))和IDC_ARROW(箭頭光標(biāo))作為創(chuàng)建窗口的窗口圖標(biāo)和鼠標(biāo)指針。,4動(dòng)態(tài)鏈接庫(kù) 動(dòng)態(tài)鏈接庫(kù)提供了一些特定結(jié)構(gòu)的函數(shù),能被應(yīng)用程序在運(yùn)行過程中裝入和連接,且多個(gè)程序可以共享同一個(gè)動(dòng)態(tài)鏈接庫(kù),這樣就可以大大節(jié)省內(nèi)存和磁盤空間。 Windows提供了豐富的應(yīng)用程序可調(diào)用的函數(shù),大多數(shù)用于實(shí)現(xiàn)其用戶界面和在屏幕顯示的文本和圖形,都是通過動(dòng)態(tài)鏈
4、接庫(kù)來實(shí)現(xiàn)的。這些動(dòng)態(tài)鏈接庫(kù)是一些具有DLL擴(kuò)展名或者有時(shí)是EXE擴(kuò)展名的文件。,任務(wù)1、登錄窗口的代碼實(shí)現(xiàn),登錄窗口的代碼實(shí)現(xiàn),1、創(chuàng)建“登錄”對(duì)話框 2、設(shè)置“登錄”對(duì)話框類和變量 3、編寫“登錄”對(duì)話框代碼,第一部分 應(yīng) 用 實(shí) 踐,3.1 創(chuàng)建“登錄”對(duì)話框 3.1.1 生成默認(rèn)對(duì)話框工程 1進(jìn)入VC+ 安裝Microsoft Visual Studio 6.0 后,在開始菜單中單擊Microsoft Visual Studio 6.0子菜單下的Microsoft Visual C+ 6.0,即可打開VC+ 6.0編程平臺(tái),如圖3.2所示。,圖3.2 打開VC+ 6.0,3.1.1 生
5、成默認(rèn)對(duì)話框工程,編程平臺(tái)由圖3.3所示的各類交互元素組成,其中菜單包含各種編程設(shè)計(jì)命令,工具欄包括一些命令的快捷按鈕和各種導(dǎo)航按鈕、搜索框等,視圖顯示區(qū)(項(xiàng)目工作區(qū)窗口)將會(huì)在建立工程后顯示編程視圖,程序文本、界面編輯區(qū)是主要的工作場(chǎng)所,進(jìn)行程序的錄入和界面的設(shè)計(jì)。,圖3.3 VC+ 6.0 編程平臺(tái),3.1.1 生成默認(rèn)對(duì)話框工程,2建立管理系統(tǒng)工程 選擇“文件”“新建”菜單,在彈出的“新建”對(duì)話框中選擇“工程”(Project)標(biāo)簽,這時(shí)顯示出一系列的應(yīng)用程序項(xiàng)目類型;選擇MFC AppWizard (exe)的項(xiàng)目類型(該類型用于創(chuàng)建可執(zhí)行的Windows應(yīng)用程序即MFC應(yīng)用程序,不同
6、于控制臺(tái)方式的“Win32 Console Application”),并在“工程”(Project)中輸入項(xiàng)目名XSCJTEST(為與后文敘述一致,請(qǐng)讀者在編程時(shí)盡量使用本書定義的名稱),在“位置”(Location)處選擇或輸入工程保存的位置,如圖3.4所示。,圖3.4 MFC AppWizard的“新建”對(duì)話框,3.1.1 生成默認(rèn)對(duì)話框工程,單擊“確定”按鈕,出現(xiàn)如圖3.5所示的MFC AppWizard - Step1對(duì)話框。,圖3.5 “Step 1”對(duì)話框,3.1.1 生成默認(rèn)對(duì)話框工程,3選擇應(yīng)用程序類型 系統(tǒng)顯示下列單選鈕:S單個(gè)文檔(Single Document)、M多重
7、文檔(Multiple Document)和D基本對(duì)話(Dialog based)。 為了建立只有一個(gè)“登錄”對(duì)話框的測(cè)試程序,選擇“D基本對(duì)話”。 保留其他的默認(rèn)選項(xiàng),單擊“完成”按鈕,系統(tǒng)出現(xiàn)一個(gè)對(duì)話框,顯示用戶在前面步驟中做出的選擇,單擊“確定”按鈕。系統(tǒng)生成默認(rèn)的基于對(duì)話框的對(duì)話框應(yīng)用程序項(xiàng)目,并且進(jìn)入VC+工程開發(fā)環(huán)境。此時(shí)默認(rèn)打開“登錄”對(duì)話框工程XSCJTEST。,3.1.1 生成默認(rèn)對(duì)話框工程,4工程開發(fā)環(huán)境 VC+基于對(duì)話框的工程開發(fā)環(huán)境如圖3.6所示。,圖3.6 基于對(duì)話框的工程,3.1.2 添加“登錄”對(duì)話框,1修改“登錄”對(duì)話框 保留VC默認(rèn)生成的對(duì)話框資源IDD_XS
8、CJTEST_DIALOG不變。如圖3.10所示,右鍵單擊Dialog,選擇Insert Dialog,添加一個(gè)新的對(duì)話框。,圖3.10 插入新對(duì)話框,3.1.2 添加“登錄”對(duì)話框,右鍵單擊右邊對(duì)話框編輯窗口中剛建立的對(duì)話框,選擇屬性,彈出如圖3.11所示的窗口。 將對(duì)話框標(biāo)識(shí)符改成IDD_LOGIN(在MFC程序中,命名方法要完全遵循C/C+語言的命名規(guī)則); 將對(duì)話框標(biāo)題改為“登錄學(xué)生成績(jī)管理系統(tǒng)”。,圖3.11 修改對(duì)話框?qū)傩?3.1.2 添加“登錄”對(duì)話框,單擊“字體”按鈕,通過彈出的字體對(duì)話框?qū)?duì)話框內(nèi)的文本設(shè)置成“宋體,9”,以使自己的對(duì)話框和Windows操作系統(tǒng)中的對(duì)話框保持
9、外觀上的一致,完成后對(duì)話框如圖3.12所示。,圖3.12 對(duì)話框?qū)傩孕薷暮蟮牟糠纸缑?3.1.2 添加“登錄”對(duì)話框,2為“登錄”對(duì)話框添加控件 對(duì)話框編輯器最初打開時(shí),控件工具欄是隨之出現(xiàn)的,利用此工具欄中各個(gè)按鈕,可以順利完成控件的添加。圖3.13說明了各個(gè)圖標(biāo)按鈕所對(duì)應(yīng)的控件類型。,圖3.13 控件工具欄和各按鈕含義,3.1.2 添加“登錄”對(duì)話框,如圖3.14所示,拖放2個(gè)靜態(tài)文本控件、2個(gè)圖片控件和2個(gè)編輯框控件到對(duì)話框上,保留系統(tǒng)自動(dòng)生成的“確定”和“取消”按鈕,或者自己重新添加2個(gè)新的按鈕。,圖3.14 在對(duì)話框上添加控件,3.1.2 添加“登錄”對(duì)話框,如圖3.15所示,右擊V
10、C資源視圖中的XSCJTEST Resources,選擇import,選擇“文件類型”為所有文件,導(dǎo)入一個(gè)bmp格式的圖片,VC自動(dòng)將其命名為IDB_BITMAP1,并保存在資源視圖的Bitmap分類下。,圖3.15 import命令導(dǎo)入圖片文件,3.1.2 添加“登錄”對(duì)話框,設(shè)置左上方圖片控件的屬性,將General選項(xiàng)卡中的Type設(shè)為BITMAP,Image設(shè)為IDB_BITMAP1,如圖3.16(a)所示,之后圖片控件將會(huì)顯示此圖片。 對(duì)另一個(gè)圖片控件則拉成細(xì)條狀,如圖3.16(b)設(shè)置屬性,將General選項(xiàng)卡中的Type設(shè)為Frame,并勾選Extended Styles選項(xiàng)卡
11、中的Static Edge項(xiàng),調(diào)整粗細(xì)長(zhǎng)度作為分隔條。,(a)顯示圖片的圖片控件屬性 (b)用做分割條的圖片控件,3.1.2 添加“登錄”對(duì)話框,分別右鍵單擊控件,在彈出的屬性對(duì)話框中,對(duì)2個(gè)靜態(tài)文本控件和2個(gè)按鈕分別命名,即在Caption一欄分別填入標(biāo)題“用戶名”、“密碼”、“確認(rèn)( / 將“用戶名”和“密碼”編輯框控件的值分別傳給字符串變量c_user和c_password / 這里m_user和 m_password均為Control類型的變量 m_user.GetWindowText(c_user);/ GetWindowText()函數(shù) m_password.GetWindowTe
12、xt(c_password); if (c_user.IsEmpty() | c_password.IsEmpty() / 用IsEmpty函數(shù)判斷用戶名和密碼字符串是否為空 MessageBox(用戶名或密碼不能為空, 用戶登錄信息); /*MessageBox也是對(duì)話框的一種,即消息對(duì)話框,與通用對(duì)話框相對(duì),可用來提示錯(cuò)誤等各種 信息或用于測(cè)試目的*/ return; if (c_user=“123” ,3.3 編寫“登錄”對(duì)話框代碼,(2)現(xiàn)在運(yùn)行并不能彈出“登錄”窗口,而是彈出建立對(duì)話框應(yīng)用程序時(shí)默認(rèn)生成的主對(duì)話框IDD_XSCJTEST_DIALOG,即VC由默認(rèn)代碼初始化這個(gè)對(duì)話框
13、類。切換到ClassView,雙擊CXSCJTESTApp下的InitInstance,打開InitInstance函數(shù),這是程序啟動(dòng)的入口。 在文件開頭處添加頭文件包含代碼: #include DlgLogin.h 找到其中的代碼: CXSCJTESTDlg dlg; 將主對(duì)話框類CXSCJTESTDlg修改為自己定義的對(duì)話框類CDlgLogin,其他代碼保持默認(rèn): CDlgLogin dlg;/ 改為初始化自定義的類CDlgLogin,即可默認(rèn)彈出“登錄”對(duì)話框 m_pMainWnd = / 使用DoModal表示實(shí)例化模式對(duì)話框 if (nResponse = IDOK)/ 判斷返回值(程序運(yùn)行時(shí)按下的按鈕對(duì)應(yīng)的常量值)
溫馨提示
- 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請(qǐng)下載最新的WinRAR軟件解壓。
- 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請(qǐng)聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
- 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁(yè)內(nèi)容里面會(huì)有圖紙預(yù)覽,若沒有圖紙預(yù)覽就沒有圖紙。
- 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
- 5. 人人文庫(kù)網(wǎng)僅提供信息存儲(chǔ)空間,僅對(duì)用戶上傳內(nèi)容的表現(xiàn)方式做保護(hù)處理,對(duì)用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對(duì)任何下載內(nèi)容負(fù)責(zé)。
- 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請(qǐng)與我們聯(lián)系,我們立即糾正。
- 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時(shí)也不承擔(dān)用戶因使用這些下載資源對(duì)自己和他人造成任何形式的傷害或損失。
最新文檔
- 體育護(hù)理專業(yè)就業(yè)前景
- 黑龍江安全試題及答案
- 2025-2026人教版一年級(jí)科學(xué)期末考
- 腸易激綜合征的腸-腸軸納米調(diào)節(jié)策略
- 針織廠衛(wèi)生管理制度
- 衛(wèi)生院?jiǎn)挝灰?guī)章制度
- 養(yǎng)生會(huì)衛(wèi)生管理制度
- 木業(yè)職業(yè)病衛(wèi)生管理制度
- 公共衛(wèi)生糖尿病管理制度
- 衛(wèi)生院醫(yī)療管理工作制度
- 安全目標(biāo)管理制度煤廠(3篇)
- 云南省玉溪市2025-2026學(xué)年八年級(jí)上學(xué)期1月期末物理試題(原卷版+解析版)
- 2026年哈爾濱通河縣第一批公益性崗位招聘62人考試參考試題及答案解析
- 就業(yè)協(xié)議書解約函模板
- 研發(fā)部門員工加班管理細(xì)則
- 鋼結(jié)構(gòu)橋梁施工監(jiān)測(cè)方案
- 2025人教pep版三年級(jí)英語上冊(cè)字帖
- 《5G移動(dòng)通信》課件-項(xiàng)目六 5G網(wǎng)絡(luò)中的人工智能技術(shù)
- 2025江蘇蘇州高新區(qū)獅山商務(wù)創(chuàng)新區(qū)下屬國(guó)有企業(yè)招聘9人筆試題庫(kù)及答案詳解
- 教培機(jī)構(gòu)年終工作總結(jié)
- 2025年秋季青島版三年級(jí)數(shù)學(xué)上冊(cè)求比一個(gè)數(shù)的幾倍多(少)幾的數(shù)教學(xué)課件
評(píng)論
0/150
提交評(píng)論