VC++高級編程期末復(fù)習(xí)_第1頁
VC++高級編程期末復(fù)習(xí)_第2頁
VC++高級編程期末復(fù)習(xí)_第3頁
VC++高級編程期末復(fù)習(xí)_第4頁
VC++高級編程期末復(fù)習(xí)_第5頁
已閱讀5頁,還剩39頁未讀 繼續(xù)免費閱讀

下載本文檔

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

文檔簡介

1、VC高級編程復(fù)習(xí)第一章 Visual C+集成開發(fā)環(huán)境lMFC 、MSDN、IDEl項目和項目工區(qū):.dsp .dsw .cpp .h .clwl工作區(qū)窗口 : 類視圖(ClassView)、 資源視圖(ResourceView)、文件視圖(FileView)第五章 創(chuàng)建應(yīng)用程序框架l 應(yīng)用程序向?qū)?chuàng)建應(yīng)用程序步驟及可程序類型?文檔類、視圖類、框架窗口類、應(yīng)用程序類的各自功能?各資源標(biāo)識符前綴的含義:ID_、IDR_ 、IDD_ 、IDC_等? AppWizard生成的文件類型后綴文件類型說 明dsw工作區(qū)文件將項目詳細(xì)情況組合到其中dsp項目文件存儲項目的詳細(xì)說明hC+頭文件存儲類及其成員的

2、聲明代碼cppC+源文件存儲類成員函數(shù)的實現(xiàn)代碼rc資源腳本文件存儲菜單、工具欄、對話框資源rc2資源文件用于將資源包含到項目中ico圖標(biāo)文件存儲應(yīng)用程序圖標(biāo)bmp位圖文件存儲各種位圖clw類向?qū)募鎯︻愊驅(qū)褂玫念愋畔cb沒有編譯的瀏覽文件保留類視圖和類向?qū)褂玫脑敿?xì)情況opt可選項文件存儲自定義的工作區(qū)的顯示情況l MFC中資源標(biāo)識符前綴標(biāo)識符前綴說 明IDR_主菜單、工具欄、圖標(biāo)和快捷鍵表資源IDD_對話框資源IDC_各種控件和光標(biāo)IDS_字符串資源IDP_信息對話框的字符串ID_菜單命令項應(yīng)用程序類的繼承關(guān)系示意圖 類的命名規(guī)則class NameC+projectName+cla

3、ssType 文檔與視圖的關(guān)系:一個文檔能擁有幾個視圖,一個視圖能擁有幾個文檔?描述了對應(yīng)于每一種類型文檔的視圖和窗口的類型,由其來確立文檔、視圖、框架和各種資源之間的固定關(guān)系。文檔文檔/視圖的相互作用函數(shù)視圖的相互作用函數(shù)(1)視圖類的)視圖類的GetDocument()函數(shù):函數(shù)作用函數(shù):函數(shù)作用(2)文檔類的)文檔類的UpdateAllViews()函數(shù):函數(shù)作用函數(shù):函數(shù)作用(3)視圖類的)視圖類的OnUpdate()函數(shù):函數(shù)作用函數(shù):函數(shù)作用第六章 文檔和視圖l 菜單欄設(shè)計:菜單類菜單欄設(shè)計:菜單類CMenu 命令更新: 菜單項狀態(tài)的維護是依賴CN_UPDATE_COMMAND_U

4、I消息l 工具欄設(shè)計:CToolBar類l 狀態(tài)欄設(shè)計:CStatusBar類 indicators數(shù)組l classWizard 類向?qū)Чδ躭鼠標(biāo)消息處理:主要的鼠標(biāo)消息:WM_MOUSEMOVE:鼠標(biāo)移動:鼠標(biāo)移動WM_LBUTTONDOWN:左鍵按下:左鍵按下WM_LBUTTONUP:左鍵彈起:左鍵彈起WM_LBUTTONDBLCLK:雙擊左鍵:雙擊左鍵WM_RBUTTONDOWN:右鍵按下:右鍵按下WM_RBUTTONUP:右鍵彈起:右鍵彈起WM_RBUTTONDBLCLK:雙擊右鍵:雙擊右鍵l 8. 序列化:序列化: 概念:對象可以將其當(dāng)前狀態(tài)(由其成員變量的值表對象可以將其當(dāng)前狀態(tài)

5、(由其成員變量的值表示)寫入永久性存儲體(通常是指磁盤)中,以后可示)寫入永久性存儲體(通常是指磁盤)中,以后可以從永久性存儲體中讀?。ㄝd入)對象的狀態(tài),從而以從永久性存儲體中讀?。ㄝd入)對象的狀態(tài),從而重建對象重建對象。類的對象自己應(yīng)該具備將狀態(tài)值寫入磁盤。類的對象自己應(yīng)該具備將狀態(tài)值寫入磁盤或從磁盤中讀出的方法(即成員函數(shù)),這種對象的或從磁盤中讀出的方法(即成員函數(shù)),這種對象的保存和恢復(fù)的過程稱為保存和恢復(fù)的過程稱為序列化序列化。 MFC應(yīng)用程序文檔的序列化方法:Serialize() 自定義類的序列化自定義類的序列化:l 類必須直接或間接地從類必須直接或間接地從CObject類派生而

6、來;類派生而來;l 類必須定義一個不帶參數(shù)的類必須定義一個不帶參數(shù)的構(gòu)造函數(shù);構(gòu)造函數(shù);l 在類的頭文件中使用在類的頭文件中使用DECLARE_SERIAL宏,在類的實現(xiàn)文宏,在類的實現(xiàn)文 件中使用件中使用IMPLEMENT_SERIAL宏;宏;l 在自定義類中重載序列化成員函數(shù)在自定義類中重載序列化成員函數(shù)Serialize()。 l 對話框類:對話框類:CDialog 由于對話框是一個特殊的窗口,所以該類是從CWnd類中派生出來的。l 對話框有兩種類型:模態(tài)對話框和非模態(tài)對話框。l 模態(tài)對話框在應(yīng)用程序能夠繼續(xù)執(zhí)行之前必須被關(guān)閉掉。即當(dāng)我們顯示一個模態(tài)對話框時應(yīng)用程序就會暫停,直到我們關(guān)閉

7、對話框我們才能繼續(xù)執(zhí)行程序中的其他任務(wù)。l 非模態(tài)對話框允許我們在顯示對話框時轉(zhuǎn)而執(zhí)行程序的其他任務(wù)而不用關(guān)閉對話框。第七章對話框和標(biāo)準(zhǔn)控件l 模態(tài)對話框的創(chuàng)建CDialog:DoModal ()()例如彈出模態(tài)對話框: CMyDialog dialog; dialog.DoModal();l 非模態(tài)對話框的創(chuàng)建 CDialog:Create ()CWnd:ShowWindow()提示信息對話框提示信息對話框int AfxMessageBox( )int MessageBox( )CWnd:MessageBox( ) 對話框的組成l 對話框模板 對話框模板定義了對話框的特性(比如大小、位置和風(fēng)

8、格)以及對話框中每個控件的類型和位置。l 對話框類 從CDialog類派生的對話框類提供編程接口來管理與對話框模板相關(guān)聯(lián)的對話框。使用對話框(掌握其編程方法)使用對話框(掌握其編程方法)創(chuàng)建和使用對話框的主要步驟創(chuàng)建和使用對話框的主要步驟創(chuàng)建對話框模板資源和相關(guān)控件;用類向?qū)?chuàng)建對話框類和與控件相關(guān)聯(lián)的成員變量和消息處理函數(shù);設(shè)計程序訪問接口來顯示對話框并獲取與控件相關(guān)聯(lián)的程序數(shù)據(jù)。l對話框控件訪問幾種方式 GetDlgItem()-Get(Set)WindowText() GetDlgItemText()/SetDlgItemText() 將控件和變量相關(guān)聯(lián) 將控件和控件變量相關(guān)聯(lián)對話框DD

9、X/DDV機制 BOOL UpdateData( BOOL bSaveAndValidate = TRUE ); 當(dāng)調(diào)用UpdateData(TRUE)時,MFC通過調(diào)用DDX函數(shù)將數(shù)據(jù)從控件傳遞到關(guān)聯(lián)的成員變量;當(dāng)調(diào)用UpdateData(FALSE)時,MFC通過調(diào)用DDX函數(shù)將數(shù)據(jù)從成員變量傳遞到關(guān)聯(lián)的的控件。利用UpdateData()函數(shù)實現(xiàn)了在刷新后重新獲取成員變量。標(biāo)準(zhǔn)控件標(biāo)準(zhǔn)控件 標(biāo)準(zhǔn)控件:靜態(tài)控件、編輯框、按鈕、列表框、組合框和滾動條等。公共控件:滑塊、進度條、列表視控件、樹視控件和標(biāo)簽控件等 MFC以類的形式對標(biāo)準(zhǔn)控件和公共控件進行了封裝,這些類大部分是從CWnd類直接派生

10、而來。靜態(tài)控件靜態(tài)控件靜態(tài)控件用于顯示提示字符串或圖形信息。包括靜態(tài)文本(Static Text)、圖片控件(Picture Control)和組框(Group Control)三種類型。管理靜態(tài)文本控件和圖片控件的MFC類是CStatic類管理組框的MFC類是CButton類。 編輯框編輯框例:例:通過“編輯”菜單中的“輸入半徑(I)”命令打開 “輸入半徑”對話框,并根據(jù)輸入的半徑畫一個圓。按鈕按鈕l 按鈕按鈕(Button)包括按鍵按鈕、單選按鈕、復(fù)選框和組按鍵按鈕、單選按鈕、復(fù)選框和組框等框等4種類型種類型。l 封裝按鈕控件的MFC類都是CButton類。按鈕按鈕例例 編寫一個SDI應(yīng)用

11、程序Password,程序啟動后首先彈出一個如圖所示的用戶身份確認(rèn)對話框,當(dāng)用戶鍵入正確的口令后才能進入程序的主界面。 列表框列表框CListBox類的成員函數(shù):成員函數(shù):l GetCount獲取列表框中字符串的數(shù)目l GetItemDataPtr獲取一個指向列表框項的指針l GetSel獲取一列表框項的選擇狀態(tài)l SetColumnWidth設(shè)置一多列列表框的寬度l GetCurSel獲取列表框中當(dāng)前所選串的索引(從零開始獲取列表框中當(dāng)前所選串的索引(從零開始)l SetCurSel選擇一列表框串選擇一列表框串l AddString在列表框中增加一個列表項在列表框中增加一個列表項l Dele

12、teString 從列表框中刪除指定的列表項從列表框中刪除指定的列表項l InsertString在列表框中指定位置處插入一個列表項在列表框中指定位置處插入一個列表項l ResetContent 清除列表框中所有列表項清除列表框中所有列表項l FindString在列表框中查找一個前綴匹配的列表項在列表框中查找一個前綴匹配的列表項l FindStringExact 在列表框中查找完全匹配的列表項在列表框中查找完全匹配的列表項l SelectString查找并選擇單列表框中的一個列表框串查找并選擇單列表框中的一個列表框串組合框組合框 簡單組合框是一個列表框和編輯框的組合,下拉組合框多加一個下拉按

13、鈕,下拉列表框與前類相似,只是無法使用編輯框。ComboBox的風(fēng)格屬性的風(fēng)格屬性:在各控件原屬性基礎(chǔ)上,屬性控制頁中新增了一個“Data”標(biāo)簽頁,用于接受列表項的初始化(用Ctrl+Enter換行)。第八章 mfc原理l 1.Windows應(yīng)用程序特點: Windows應(yīng)用程序是按照“事件事件消息消息處理處理”非順序的機制運行。 Windows是一個基于事件的消息驅(qū)動系統(tǒng)。l所謂消息消息就是用于描述某個事件發(fā)生的信息,而事事件件是對于Windows的某種操作。l消息驅(qū)動消息驅(qū)動是Windows應(yīng)用程序的核心,所有的外部響應(yīng)(如鍵盤、鼠標(biāo)和計時器等)都被Windows先攔截,轉(zhuǎn)換成消息后再發(fā)送

14、到應(yīng)用程序中的目標(biāo)對象,應(yīng)用程序根據(jù)消息的具體內(nèi)容進行處理。lWindows為每一個應(yīng)用程序都維護一個或多個消息消息隊列隊列,發(fā)送到每個程序窗口的消息都排成一個隊列。 事件和事件和消息消息 Windows消息消息分為三種類型:分為三種類型:l標(biāo) 準(zhǔn)標(biāo) 準(zhǔn) W i n d o w s 消 息消 息 : 以 W M _ 前 綴 ( 但 不 包 括WM_COMMAND)開始的消息,包括鼠標(biāo)消息、鍵盤消息和窗口消息等。l控件通知(控件通知(Control Notification)消息消息:對控件操作引起 的 消 息 , 是 控 件 和 子 窗 口 向 其 父 窗 口 發(fā) 出 的WM_COMMAND通

15、知消息。l命令(命令(Command)消息消息:由菜單項、工具欄按鈕、快捷鍵等用戶界面對象發(fā)出的WM_COMMAND消息。句柄:在句柄:在Windows中,用中,用句柄句柄標(biāo)識應(yīng)用程序中標(biāo)識應(yīng)用程序中不同的對象和同類對象中不同的實例,如一個不同的對象和同類對象中不同的實例,如一個具體的窗口、按鈕、輸出設(shè)備、畫筆和文件等具體的窗口、按鈕、輸出設(shè)備、畫筆和文件等WinMain()函數(shù)為()函數(shù)為Windows應(yīng)用程序的入口應(yīng)用程序的入口點函數(shù)。點函數(shù)。MFC 類庫結(jié)構(gòu)類庫結(jié)構(gòu)CObjectCCmdTargetCWnd應(yīng)用類結(jié)構(gòu)窗口支持異常類文件服務(wù)類文檔類框架窗口類控制條類屬性頁表類對話框類視圖類

16、控件類圖形設(shè)備環(huán)境類控制支持類Windows套接字類圖形對象類菜單類ODBC支持類DAO支持類同步類其它類:其它類:Internet支持類自動化類型運行時刻對象支持簡單值類型結(jié)構(gòu)其它支持類集合模板類用于同步的類數(shù)組類列表類映射類Internet類MFC框架的基本類l 消息映射類消息映射類CCmdTarget 該類是CObject的子類,是MFC類庫中所有具有消息映射屬性的基類,消息映射規(guī)定了當(dāng)對象接到命令消息時,應(yīng)調(diào)用哪一個函數(shù)對該消息進行處理。命令消息是來自菜單項、命令按鈕和加速鍵的信息,由CCmdTarget派生出的主框架類包括CView、CWinApp、CDocument、CWnd和Cf

17、rameWnd都可處理命令消息。MFC框架的基本類lCWinApp 應(yīng)用程序類 負(fù)責(zé)初始化和運行應(yīng)用程序 程序開始運行后創(chuàng)建的第一個對象,并且是程序結(jié)束前最后一個清除的對象 負(fù)責(zé)創(chuàng)建其他對象,包括窗口、視圖和文檔 通常應(yīng)用程序類都是CWinApp的子類,默認(rèn)命名規(guī)則是CXXXApp,其中XXX為應(yīng)用程序名稱MFC框架的基本類lCFrameWnd 應(yīng)用程序框架窗口類 負(fù)責(zé)顯示交互界面,包括菜單和工具欄等MFC框架的基本類lCDocument 應(yīng)用程序文檔類 負(fù)責(zé)加載和維護文檔 默認(rèn)命名規(guī)則CXXXDoc,XXX為應(yīng)用程序名lCView 應(yīng)用程序視圖類 一個文檔可以對應(yīng)幾個不同的視圖(對應(yīng)不同的顯

18、示方式) 默認(rèn)命名規(guī)則CXXXView,XXX為應(yīng)用程序名第九章第九章 圖形處理圖形處理l GDI:Windows提供了一個稱為圖形設(shè)備接口GDI(Graphics Device Interface)的抽象接口,用戶通過調(diào)用GDI函數(shù)與設(shè)備打交道,GDI通過不同設(shè)備提供的驅(qū)動程序?qū)⒗L圖語句轉(zhuǎn)換為對應(yīng)的繪圖指令,避免了直接對硬件進行操作,從而實現(xiàn)所謂的設(shè)備無關(guān)性。設(shè)備環(huán)境設(shè)備環(huán)境l為了實現(xiàn)設(shè)備無關(guān)性,應(yīng)用程序的輸出不直接面向顯示器等物理設(shè)備,而是面向一個稱之為設(shè)備環(huán)境DC(Device Context)的虛擬邏輯設(shè)備。lMFC設(shè)備環(huán)境類:設(shè)備環(huán)境類: CDC、CPaintDC 、CClientD

19、C、CWindowDC、 CMetaFileDC等。lCDC類既作為其它MFC設(shè)備環(huán)境類的基類,又可以作為一個一般的設(shè)備環(huán)境類使用。 CDC *dc=GetDC(); dc-TextOut(0, 0,文本); ReleaseDC(dc);lCPaintDC類是OnPaint()函數(shù)使用的設(shè)備環(huán)境類,它代表一個窗口的繪圖畫面。如果添加WM_PAINT消息處理函數(shù)OnPaint(),就需要使用CPaintDC類定義設(shè)備環(huán)境對象。 CPaintDC dc(this); lCClientDC類代表了客戶區(qū)設(shè)備環(huán)境。當(dāng)在客戶區(qū)實時繪圖時,需要利用CClientDC類定義一個客戶區(qū)設(shè)備環(huán)境。 CClien

20、tDC dc(this); dc.MoveTo(point1); dc.LineTo(point2);lCWindowDC類代表了整個程序窗口設(shè)備環(huán)境,可以在整個窗口區(qū)域繪圖。 lCMetaFileDC類用于創(chuàng)建一個Windows圖元文件設(shè)備環(huán)境MFC設(shè)備環(huán)境類:設(shè)備環(huán)境類: 顏色顏色lWindows用COLORREF類型的數(shù)據(jù)存放顏色,它是一個32位整數(shù)。lCOLORREF類型數(shù)據(jù)的低位字節(jié)存放紅色強度值,第2個字節(jié)存放綠色強度值,第3個字節(jié)存放藍(lán)色強度值,高位字節(jié)為0,每一種顏色分量的取值范圍為0到255。 使用畫筆(掌握)使用畫筆(掌握)使用自定義的畫筆:創(chuàng)建一個指定風(fēng)格的畫筆,創(chuàng)建的畫筆選入設(shè)備環(huán)境,在使用該畫筆繪圖結(jié)束后需要釋放該畫筆。 l創(chuàng)建畫筆創(chuàng)建畫筆方法1:CPen pen(PS_DASH,1,RGB(255,0,0);方法2:CPen pen; pen.CreatePen(PS_DASH,1,RGB(255,0,0);(2) 選用畫筆選用畫筆CPen *pOldPe

溫馨提示

  • 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

提交評論