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

下載本文檔

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

文檔簡(jiǎn)介

VC高級(jí)編程復(fù)習(xí)第一章VisualC++集成開(kāi)發(fā)環(huán)境MFC、MSDN、IDE項(xiàng)目和項(xiàng)目工區(qū):.dsp

.dsw.cpp.h.clw工作區(qū)窗口:類視圖(ClassView)、資源視圖(ResourceView)、文件視圖(FileView)

第五章創(chuàng)建應(yīng)用程序框架應(yīng)用程序向?qū)?chuàng)建應(yīng)用程序步驟及可程序類型?文檔類、視圖類、框架窗口類、應(yīng)用程序類的各自功能?各資源標(biāo)識(shí)符前綴的含義:ID_、IDR_、IDD_、IDC_等?AppWizard生成的文件類型后綴文件類型說(shuō)明dsw工作區(qū)文件將項(xiàng)目詳細(xì)情況組合到其中dsp項(xiàng)目文件存儲(chǔ)項(xiàng)目的詳細(xì)說(shuō)明hC++頭文件存儲(chǔ)類及其成員的聲明代碼cppC++源文件存儲(chǔ)類成員函數(shù)的實(shí)現(xiàn)代碼rc資源腳本文件存儲(chǔ)菜單、工具欄、對(duì)話框資源rc2資源文件用于將資源包含到項(xiàng)目中ico圖標(biāo)文件存儲(chǔ)應(yīng)用程序圖標(biāo)bmp位圖文件存儲(chǔ)各種位圖clw類向?qū)募鎯?chǔ)類向?qū)褂玫念愋畔cb沒(méi)有編譯的瀏覽文件保留類視圖和類向?qū)褂玫脑敿?xì)情況opt可選項(xiàng)文件存儲(chǔ)自定義的工作區(qū)的顯示情況MFC中資源標(biāo)識(shí)符前綴標(biāo)識(shí)符前綴說(shuō)明IDR_主菜單、工具欄、圖標(biāo)和快捷鍵表資源IDD_對(duì)話框資源IDC_各種控件和光標(biāo)IDS_字符串資源IDP_信息對(duì)話框的字符串ID_菜單命令項(xiàng)應(yīng)用程序類的繼承關(guān)系示意圖類的命名規(guī)則

classNameC+projectName+classType文檔與視圖的關(guān)系:一個(gè)文檔能擁有幾個(gè)視圖,一個(gè)視圖能擁有幾個(gè)文檔?采用分離機(jī)制將數(shù)據(jù)的管理和顯示分作兩部分,數(shù)據(jù)管理和維護(hù)由文檔負(fù)責(zé),數(shù)據(jù)的顯示和編輯由視圖負(fù)責(zé)。文檔模板:描述了對(duì)應(yīng)于每一種類型文檔的視圖和窗口的類型,由其來(lái)確立文檔、視圖、框架和各種資源之間的固定關(guān)系。文檔/視圖的相互作用函數(shù)(1)視圖類的GetDocument()函數(shù):函數(shù)作用(2)文檔類的UpdateAllViews()函數(shù):函數(shù)作用(3)視圖類的OnUpdate()函數(shù):函數(shù)作用第六章文檔和視圖菜單欄設(shè)計(jì):菜單類CMenu

命令更新:菜單項(xiàng)狀態(tài)的維護(hù)是依賴CN_UPDATE_COMMAND_UI消息工具欄設(shè)計(jì):CToolBar類

狀態(tài)欄設(shè)計(jì):CStatusBar類

indicators數(shù)組classWizard類向?qū)Чδ苁髽?biāo)消息處理:主要的鼠標(biāo)消息:WM_MOUSEMOVE:鼠標(biāo)移動(dòng)WM_LBUTTONDOWN:左鍵按下WM_LBUTTONUP:左鍵彈起WM_LBUTTONDBLCLK:雙擊左鍵WM_RBUTTONDOWN:右鍵按下WM_RBUTTONUP:右鍵彈起WM_RBUTTONDBLCLK:雙擊右鍵8.

序列化:概念:對(duì)象可以將其當(dāng)前狀態(tài)(由其成員變量的值表示)寫(xiě)入永久性存儲(chǔ)體(通常是指磁盤(pán))中,以后可以從永久性存儲(chǔ)體中讀取(載入)對(duì)象的狀態(tài),從而重建對(duì)象。類的對(duì)象自己應(yīng)該具備將狀態(tài)值寫(xiě)入磁盤(pán)或從磁盤(pán)中讀出的方法(即成員函數(shù)),這種對(duì)象的保存和恢復(fù)的過(guò)程稱為序列化。

MFC應(yīng)用程序文檔的序列化方法:Serialize()自定義類的序列化:類必須直接或間接地從CObject類派生而來(lái);類必須定義一個(gè)不帶參數(shù)的構(gòu)造函數(shù);在類的頭文件中使用DECLARE_SERIAL宏,在類的實(shí)現(xiàn)文件中使用IMPLEMENT_SERIAL宏;在自定義類中重載序列化成員函數(shù)Serialize()。

對(duì)話框類:CDialog由于對(duì)話框是一個(gè)特殊的窗口,所以該類是從CWnd類中派生出來(lái)的。對(duì)話框有兩種類型:模態(tài)對(duì)話框和非模態(tài)對(duì)話框。模態(tài)對(duì)話框在應(yīng)用程序能夠繼續(xù)執(zhí)行之前必須被關(guān)閉掉。即當(dāng)我們顯示一個(gè)模態(tài)對(duì)話框時(shí)應(yīng)用程序就會(huì)暫停,直到我們關(guān)閉對(duì)話框我們才能繼續(xù)執(zhí)行程序中的其他任務(wù)。非模態(tài)對(duì)話框允許我們?cè)陲@示對(duì)話框時(shí)轉(zhuǎn)而執(zhí)行程序的其他任務(wù)而不用關(guān)閉對(duì)話框。第七章對(duì)話框和標(biāo)準(zhǔn)控件模態(tài)對(duì)話框的創(chuàng)建CDialog::DoModal

()例如彈出模態(tài)對(duì)話框:CMyDialogdialog;dialog.DoModal();非模態(tài)對(duì)話框的創(chuàng)建CDialog::Create()CWnd::ShowWindow()

提示信息對(duì)話框intAfxMessageBox()intMessageBox()CWnd:MessageBox()

對(duì)話框的組成對(duì)話框模板對(duì)話框模板定義了對(duì)話框的特性(比如大小、位置和風(fēng)格)以及對(duì)話框中每個(gè)控件的類型和位置。對(duì)話框類

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

BOOL

UpdateData(

BOOL

bSaveAndValidate

=

TRUE

);

當(dāng)調(diào)用UpdateData(TRUE)時(shí),MFC通過(guò)調(diào)用DDX函數(shù)將數(shù)據(jù)從控件傳遞到關(guān)聯(lián)的成員變量;當(dāng)調(diào)用UpdateData(FALSE)時(shí),MFC通過(guò)調(diào)用DDX函數(shù)將數(shù)據(jù)從成員變量傳遞到關(guān)聯(lián)的的控件。利用UpdateData()函數(shù)實(shí)現(xiàn)了在刷新后重新獲取成員變量。標(biāo)準(zhǔn)控件

標(biāo)準(zhǔn)控件:靜態(tài)控件、編輯框、按鈕、列表框、組合框和滾動(dòng)條等。

公共控件:滑塊、進(jìn)度條、列表視控件、樹(shù)視控件和標(biāo)簽控件等MFC以類的形式對(duì)標(biāo)準(zhǔn)控件和公共控件進(jìn)行了封裝,這些類大部分是從CWnd類直接派生而來(lái)。靜態(tài)控件靜態(tài)控件用于顯示提示字符串或圖形信息。包括靜態(tài)文本(StaticText)、圖片控件(PictureControl)和組框(GroupControl)三種類型。管理靜態(tài)文本控件和圖片控件的MFC類是CStatic類管理組框的MFC類是CButton類。

編輯框

例:通過(guò)“編輯”菜單中的“輸入半徑(I)”命令打開(kāi)“輸入半徑”對(duì)話框,并根據(jù)輸入的半徑畫(huà)一個(gè)圓。

按鈕

按鈕(Button)包括按鍵按鈕、單選按鈕、復(fù)選框和組框等4種類型。

封裝按鈕控件的MFC類都是CButton類。按鈕例

編寫(xiě)一個(gè)SDI應(yīng)用程序Password,程序啟動(dòng)后首先彈出一個(gè)如圖所示的用戶身份確認(rèn)對(duì)話框,當(dāng)用戶鍵入正確的口令后才能進(jìn)入程序的主界面。

列表框CListBox類的成員函數(shù):GetCount

獲取列表框中字符串的數(shù)目 GetItemDataPtr

獲取一個(gè)指向列表框項(xiàng)的指針 GetSel

獲取一列表框項(xiàng)的選擇狀態(tài) SetColumnWidth

設(shè)置一多列列表框的寬度 GetCurSel

獲取列表框中當(dāng)前所選串的索引(從零開(kāi)始) SetCurSel

選擇一列表框串 AddString

在列表框中增加一個(gè)列表項(xiàng)

DeleteString

從列表框中刪除指定的列表項(xiàng)

InsertString

在列表框中指定位置處插入一個(gè)列表項(xiàng) ResetContent

清除列表框中所有列表項(xiàng) FindString

在列表框中查找一個(gè)前綴匹配的列表項(xiàng)FindStringExact

在列表框中查找完全匹配的列表項(xiàng)SelectString

查找并選擇單列表框中的一個(gè)列表框串 組合框

簡(jiǎn)單組合框——是一個(gè)列表框和編輯框的組合,下拉組合框——多加一個(gè)下拉按鈕,下拉列表框——與前類相似,只是無(wú)法使用編輯框。ComboBox的風(fēng)格屬性:在各控件原屬性基礎(chǔ)上,屬性控制頁(yè)中新增了一個(gè)“Data”標(biāo)簽頁(yè),用于接受列表項(xiàng)的初始化(用Ctrl+Enter換行)。第八章mfc原理1.Windows應(yīng)用程序特點(diǎn):Windows應(yīng)用程序是按照“事件→消息→處理”非順序的機(jī)制運(yùn)行。Windows是一個(gè)基于事件的消息驅(qū)動(dòng)系統(tǒng)。所謂消息就是用于描述某個(gè)事件發(fā)生的信息,而事件是對(duì)于Windows的某種操作。消息驅(qū)動(dòng)是Windows應(yīng)用程序的核心,所有的外部響應(yīng)(如鍵盤(pán)、鼠標(biāo)和計(jì)時(shí)器等)都被Windows先攔截,轉(zhuǎn)換成消息后再發(fā)送到應(yīng)用程序中的目標(biāo)對(duì)象,應(yīng)用程序根據(jù)消息的具體內(nèi)容進(jìn)行處理。Windows為每一個(gè)應(yīng)用程序都維護(hù)一個(gè)或多個(gè)消息隊(duì)列,發(fā)送到每個(gè)程序窗口的消息都排成一個(gè)隊(duì)列。

事件和消息

Windows消息分為三種類型:標(biāo)準(zhǔn)Windows消息:以WM_前綴(但不包括WM_COMMAND)開(kāi)始的消息,包括鼠標(biāo)消息、鍵盤(pán)消息和窗口消息等。控件通知(ControlNotification)消息:對(duì)控件操作引起的消息,是控件和子窗口向其父窗口發(fā)出的WM_COMMAND通知消息。命令(Command)消息:由菜單項(xiàng)、工具欄按鈕、快捷鍵等用戶界面對(duì)象發(fā)出的WM_COMMAND消息。句柄:在Windows中,用句柄標(biāo)識(shí)應(yīng)用程序中不同的對(duì)象和同類對(duì)象中不同的實(shí)例,如一個(gè)具體的窗口、按鈕、輸出設(shè)備、畫(huà)筆和文件等WinMain()函數(shù)為Windows應(yīng)用程序的入口點(diǎn)函數(shù)。MFC類庫(kù)結(jié)構(gòu)CObjectCCmdTargetCWnd應(yīng)用類結(jié)構(gòu)窗口支持異常類文件服務(wù)類文檔類框架窗口類控制條類屬性頁(yè)表類對(duì)話框類視圖類控件類圖形設(shè)備環(huán)境類控制支持類Windows套接字類圖形對(duì)象類菜單類ODBC支持類DAO支持類同步類其它類:Internet支持類自動(dòng)化類型運(yùn)行時(shí)刻對(duì)象支持簡(jiǎn)單值類型結(jié)構(gòu)其它支持類集合模板類用于同步的類數(shù)組類列表類映射類Internet類MFC框架的基本類消息映射類CCmdTarget該類是CObject的子類,是MFC類庫(kù)中所有具有消息映射屬性的基類,消息映射規(guī)定了當(dāng)對(duì)象接到命令消息時(shí),應(yīng)調(diào)用哪一個(gè)函數(shù)對(duì)該消息進(jìn)行處理。命令消息是來(lái)自菜單項(xiàng)、命令按鈕和加速鍵的信息,由CCmdTarget派生出的主框架類包括CView、CWinApp、CDocument、CWnd和CframeWnd都可處理命令消息。MFC框架的基本類CWinApp應(yīng)用程序類負(fù)責(zé)初始化和運(yùn)行應(yīng)用程序程序開(kāi)始運(yùn)行后創(chuàng)建的第一個(gè)對(duì)象,并且是程序結(jié)束前最后一個(gè)清除的對(duì)象負(fù)責(zé)創(chuàng)建其他對(duì)象,包括窗口、視圖和文檔通常應(yīng)用程序類都是CWinApp的子類,默認(rèn)命名規(guī)則是CXXXApp,其中XXX為應(yīng)用程序名稱MFC框架的基本類CFrameWnd應(yīng)用程序框架窗口類負(fù)責(zé)顯示交互界面,包括菜單和工具欄等MFC框架的基本類CDocument應(yīng)用程序文檔類負(fù)責(zé)加載和維護(hù)文檔默認(rèn)命名規(guī)則CXXXDoc,XXX為應(yīng)用程序名CView應(yīng)用程序視圖類一個(gè)文檔可以對(duì)應(yīng)幾個(gè)不同的視圖(對(duì)應(yīng)不同的顯示方式)默認(rèn)命名規(guī)則CXXXView,XXX為應(yīng)用程序名第九章圖形處理GDI:Windows提供了一個(gè)稱為圖形設(shè)備接口GDI(GraphicsDeviceInterface)的抽象接口,用戶通過(guò)調(diào)用GDI函數(shù)與設(shè)備打交道,GDI通過(guò)不同設(shè)備提供的驅(qū)動(dòng)程序?qū)⒗L圖語(yǔ)句轉(zhuǎn)換為對(duì)應(yīng)的繪圖指令,避免了直接對(duì)硬件進(jìn)行操作,從而實(shí)現(xiàn)所謂的設(shè)備無(wú)關(guān)性。設(shè)備環(huán)境為了實(shí)現(xiàn)設(shè)備無(wú)關(guān)性,應(yīng)用程序的輸出不直接面向顯示器等物理設(shè)備,而是面向一個(gè)稱之為設(shè)備環(huán)境DC(DeviceContext)的虛擬邏輯設(shè)備。MFC設(shè)備環(huán)境類:CDC、CPaintDC、CClientDC、CWindowDC、CMetaFileDC等。CDC類既作為其它MFC設(shè)備環(huán)境類的基類,又可以作為一個(gè)一般的設(shè)備環(huán)境類使用。CDC*dc=GetDC();dc->TextOut(0,0,"文本");ReleaseDC(dc);CPaintDC類是OnPaint()函數(shù)使用的設(shè)備環(huán)境類,它代表一個(gè)窗口的繪圖畫(huà)面。如果添加WM_PAINT消息處理函數(shù)OnPaint(),就需要使用CPaintDC類定義設(shè)備環(huán)境對(duì)象。CPaintDCdc(this);CClientDC類代表了客戶區(qū)設(shè)備環(huán)境。當(dāng)在客戶區(qū)實(shí)時(shí)繪圖時(shí),需要利用CClientDC類定義一個(gè)客戶區(qū)設(shè)備環(huán)境。 CClientDCdc(this);dc.MoveTo(point1);dc.LineTo(point2);CWindowDC類代表了整個(gè)程序窗口設(shè)備環(huán)境,可以在整個(gè)窗口區(qū)域繪圖。

CMetaFileDC類用于創(chuàng)建一個(gè)Windows圖元文件設(shè)備環(huán)境MFC設(shè)備環(huán)境類:顏色Windows用COLORREF類型的數(shù)據(jù)存放顏色,它是一個(gè)32位整數(shù)。COLORREF類型數(shù)據(jù)的低位字節(jié)存放紅色強(qiáng)度值,第2個(gè)字節(jié)存放綠色強(qiáng)度值,第3個(gè)字節(jié)存放藍(lán)色強(qiáng)度值,高位字節(jié)為0,每一種顏色分量的取值范圍為0到255。

使用畫(huà)筆(掌握)使用自定義的畫(huà)筆:創(chuàng)建一個(gè)指定風(fēng)格的畫(huà)筆,創(chuàng)建的畫(huà)筆選入設(shè)備環(huán)境,在使用該畫(huà)筆繪圖結(jié)束后需要釋放該畫(huà)筆。

創(chuàng)建畫(huà)筆方法1:CPenpen(PS_DASH,1,RGB(255,0,0));方法2:CPenpen;pen.CreatePen(PS_DASH,1,RGB(255,0,0));(2)選用畫(huà)筆

CPen*pOldPen;

pOldPen=pDC->SelectObject(&pen);

pDC->MoveTo(100,100);

pDC->LineTo(200,200)(3)還原畫(huà)筆pDC->SelectOb

溫馨提示

  • 1. 本站所有資源如無(wú)特殊說(shuō)明,都需要本地電腦安裝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ù)覽,若沒(méi)有圖紙預(yù)覽就沒(méi)有圖紙。
  • 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ì)自己和他人造成任何形式的傷害或損失。

最新文檔

評(píng)論

0/150

提交評(píng)論