版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請進行舉報或認領(lǐng)
文檔簡介
VC高級編程復(fù)習(xí)第一章VisualC++集成開發(fā)環(huán)境MFC、MSDN、IDE項目和項目工區(qū):.dsp
.dsw.cpp.h.clw工作區(qū)窗口:類視圖(ClassView)、資源視圖(ResourceView)、文件視圖(FileView)
第五章創(chuàng)建應(yīng)用程序框架應(yīng)用程序向?qū)?chuàng)建應(yīng)用程序步驟及可程序類型?文檔類、視圖類、框架窗口類、應(yīng)用程序類的各自功能?各資源標識符前綴的含義:ID_、IDR_、IDD_、IDC_等?AppWizard生成的文件類型后綴文件類型說明dsw工作區(qū)文件將項目詳細情況組合到其中dsp項目文件存儲項目的詳細說明hC++頭文件存儲類及其成員的聲明代碼cppC++源文件存儲類成員函數(shù)的實現(xiàn)代碼rc資源腳本文件存儲菜單、工具欄、對話框資源rc2資源文件用于將資源包含到項目中ico圖標文件存儲應(yīng)用程序圖標bmp位圖文件存儲各種位圖clw類向?qū)募鎯︻愊驅(qū)褂玫念愋畔cb沒有編譯的瀏覽文件保留類視圖和類向?qū)褂玫脑敿毲闆ropt可選項文件存儲自定義的工作區(qū)的顯示情況MFC中資源標識符前綴標識符前綴說明IDR_主菜單、工具欄、圖標和快捷鍵表資源IDD_對話框資源IDC_各種控件和光標IDS_字符串資源IDP_信息對話框的字符串ID_菜單命令項應(yīng)用程序類的繼承關(guān)系示意圖類的命名規(guī)則
classNameC+projectName+classType文檔與視圖的關(guān)系:一個文檔能擁有幾個視圖,一個視圖能擁有幾個文檔?采用分離機制將數(shù)據(jù)的管理和顯示分作兩部分,數(shù)據(jù)管理和維護由文檔負責(zé),數(shù)據(jù)的顯示和編輯由視圖負責(zé)。文檔模板:描述了對應(yīng)于每一種類型文檔的視圖和窗口的類型,由其來確立文檔、視圖、框架和各種資源之間的固定關(guān)系。文檔/視圖的相互作用函數(shù)(1)視圖類的GetDocument()函數(shù):函數(shù)作用(2)文檔類的UpdateAllViews()函數(shù):函數(shù)作用(3)視圖類的OnUpdate()函數(shù):函數(shù)作用第六章文檔和視圖菜單欄設(shè)計:菜單類CMenu
命令更新:菜單項狀態(tài)的維護是依賴CN_UPDATE_COMMAND_UI消息工具欄設(shè)計:CToolBar類
狀態(tài)欄設(shè)計:CStatusBar類
indicators數(shù)組classWizard類向?qū)Чδ苁髽讼⑻幚恚褐饕氖髽讼ⅲ篧M_MOUSEMOVE:鼠標移動WM_LBUTTONDOWN:左鍵按下WM_LBUTTONUP:左鍵彈起WM_LBUTTONDBLCLK:雙擊左鍵WM_RBUTTONDOWN:右鍵按下WM_RBUTTONUP:右鍵彈起WM_RBUTTONDBLCLK:雙擊右鍵8.
序列化:概念:對象可以將其當前狀態(tài)(由其成員變量的值表示)寫入永久性存儲體(通常是指磁盤)中,以后可以從永久性存儲體中讀?。ㄝd入)對象的狀態(tài),從而重建對象。類的對象自己應(yīng)該具備將狀態(tài)值寫入磁盤或從磁盤中讀出的方法(即成員函數(shù)),這種對象的保存和恢復(fù)的過程稱為序列化。
MFC應(yīng)用程序文檔的序列化方法:Serialize()自定義類的序列化:類必須直接或間接地從CObject類派生而來;類必須定義一個不帶參數(shù)的構(gòu)造函數(shù);在類的頭文件中使用DECLARE_SERIAL宏,在類的實現(xiàn)文件中使用IMPLEMENT_SERIAL宏;在自定義類中重載序列化成員函數(shù)Serialize()。
對話框類:CDialog由于對話框是一個特殊的窗口,所以該類是從CWnd類中派生出來的。對話框有兩種類型:模態(tài)對話框和非模態(tài)對話框。模態(tài)對話框在應(yīng)用程序能夠繼續(xù)執(zhí)行之前必須被關(guān)閉掉。即當我們顯示一個模態(tài)對話框時應(yīng)用程序就會暫停,直到我們關(guān)閉對話框我們才能繼續(xù)執(zhí)行程序中的其他任務(wù)。非模態(tài)對話框允許我們在顯示對話框時轉(zhuǎn)而執(zhí)行程序的其他任務(wù)而不用關(guān)閉對話框。第七章對話框和標準控件模態(tài)對話框的創(chuàng)建CDialog::DoModal
()例如彈出模態(tài)對話框:CMyDialogdialog;dialog.DoModal();非模態(tài)對話框的創(chuàng)建CDialog::Create()CWnd::ShowWindow()
提示信息對話框intAfxMessageBox()intMessageBox()CWnd:MessageBox()
對話框的組成對話框模板對話框模板定義了對話框的特性(比如大小、位置和風(fēng)格)以及對話框中每個控件的類型和位置。對話框類
從CDialog類派生的對話框類提供編程接口來管理與對話框模板相關(guān)聯(lián)的對話框。使用對話框(掌握其編程方法)創(chuàng)建和使用對話框的主要步驟創(chuàng)建對話框模板資源和相關(guān)控件;用類向?qū)?chuàng)建對話框類和與控件相關(guān)聯(lián)的成員變量和消息處理函數(shù);設(shè)計程序訪問接口來顯示對話框并獲取與控件相關(guān)聯(lián)的程序數(shù)據(jù)。對話框控件訪問幾種方式GetDlgItem()->Get(Set)WindowText()GetDlgItemText()/SetDlgItemText()將控件和變量相關(guān)聯(lián)將控件和控件變量相關(guān)聯(lián)對話框DDX/DDV機制
BOOL
UpdateData(
BOOL
bSaveAndValidate
=
TRUE
);
當調(diào)用UpdateData(TRUE)時,MFC通過調(diào)用DDX函數(shù)將數(shù)據(jù)從控件傳遞到關(guān)聯(lián)的成員變量;當調(diào)用UpdateData(FALSE)時,MFC通過調(diào)用DDX函數(shù)將數(shù)據(jù)從成員變量傳遞到關(guān)聯(lián)的的控件。利用UpdateData()函數(shù)實現(xiàn)了在刷新后重新獲取成員變量。標準控件
標準控件:靜態(tài)控件、編輯框、按鈕、列表框、組合框和滾動條等。
公共控件:滑塊、進度條、列表視控件、樹視控件和標簽控件等MFC以類的形式對標準控件和公共控件進行了封裝,這些類大部分是從CWnd類直接派生而來。靜態(tài)控件靜態(tài)控件用于顯示提示字符串或圖形信息。包括靜態(tài)文本(StaticText)、圖片控件(PictureControl)和組框(GroupControl)三種類型。管理靜態(tài)文本控件和圖片控件的MFC類是CStatic類管理組框的MFC類是CButton類。
編輯框
例:通過“編輯”菜單中的“輸入半徑(I)”命令打開“輸入半徑”對話框,并根據(jù)輸入的半徑畫一個圓。
按鈕
按鈕(Button)包括按鍵按鈕、單選按鈕、復(fù)選框和組框等4種類型。
封裝按鈕控件的MFC類都是CButton類。按鈕例
編寫一個SDI應(yīng)用程序Password,程序啟動后首先彈出一個如圖所示的用戶身份確認對話框,當用戶鍵入正確的口令后才能進入程序的主界面。
列表框CListBox類的成員函數(shù):GetCount
獲取列表框中字符串的數(shù)目 GetItemDataPtr
獲取一個指向列表框項的指針 GetSel
獲取一列表框項的選擇狀態(tài) SetColumnWidth
設(shè)置一多列列表框的寬度 GetCurSel
獲取列表框中當前所選串的索引(從零開始) SetCurSel
選擇一列表框串 AddString
在列表框中增加一個列表項
DeleteString
從列表框中刪除指定的列表項
InsertString
在列表框中指定位置處插入一個列表項 ResetContent
清除列表框中所有列表項 FindString
在列表框中查找一個前綴匹配的列表項FindStringExact
在列表框中查找完全匹配的列表項SelectString
查找并選擇單列表框中的一個列表框串 組合框
簡單組合框——是一個列表框和編輯框的組合,下拉組合框——多加一個下拉按鈕,下拉列表框——與前類相似,只是無法使用編輯框。ComboBox的風(fēng)格屬性:在各控件原屬性基礎(chǔ)上,屬性控制頁中新增了一個“Data”標簽頁,用于接受列表項的初始化(用Ctrl+Enter換行)。第八章mfc原理1.Windows應(yīng)用程序特點:Windows應(yīng)用程序是按照“事件→消息→處理”非順序的機制運行。Windows是一個基于事件的消息驅(qū)動系統(tǒng)。所謂消息就是用于描述某個事件發(fā)生的信息,而事件是對于Windows的某種操作。消息驅(qū)動是Windows應(yīng)用程序的核心,所有的外部響應(yīng)(如鍵盤、鼠標和計時器等)都被Windows先攔截,轉(zhuǎn)換成消息后再發(fā)送到應(yīng)用程序中的目標對象,應(yīng)用程序根據(jù)消息的具體內(nèi)容進行處理。Windows為每一個應(yīng)用程序都維護一個或多個消息隊列,發(fā)送到每個程序窗口的消息都排成一個隊列。
事件和消息
Windows消息分為三種類型:標準Windows消息:以WM_前綴(但不包括WM_COMMAND)開始的消息,包括鼠標消息、鍵盤消息和窗口消息等。控件通知(ControlNotification)消息:對控件操作引起的消息,是控件和子窗口向其父窗口發(fā)出的WM_COMMAND通知消息。命令(Command)消息:由菜單項、工具欄按鈕、快捷鍵等用戶界面對象發(fā)出的WM_COMMAND消息。句柄:在Windows中,用句柄標識應(yīng)用程序中不同的對象和同類對象中不同的實例,如一個具體的窗口、按鈕、輸出設(shè)備、畫筆和文件等WinMain()函數(shù)為Windows應(yīng)用程序的入口點函數(shù)。MFC類庫結(jié)構(gòu)CObjectCCmdTargetCWnd應(yīng)用類結(jié)構(gòu)窗口支持異常類文件服務(wù)類文檔類框架窗口類控制條類屬性頁表類對話框類視圖類控件類圖形設(shè)備環(huán)境類控制支持類Windows套接字類圖形對象類菜單類ODBC支持類DAO支持類同步類其它類:Internet支持類自動化類型運行時刻對象支持簡單值類型結(jié)構(gòu)其它支持類集合模板類用于同步的類數(shù)組類列表類映射類Internet類MFC框架的基本類消息映射類CCmdTarget該類是CObject的子類,是MFC類庫中所有具有消息映射屬性的基類,消息映射規(guī)定了當對象接到命令消息時,應(yīng)調(diào)用哪一個函數(shù)對該消息進行處理。命令消息是來自菜單項、命令按鈕和加速鍵的信息,由CCmdTarget派生出的主框架類包括CView、CWinApp、CDocument、CWnd和CframeWnd都可處理命令消息。MFC框架的基本類CWinApp應(yīng)用程序類負責(zé)初始化和運行應(yīng)用程序程序開始運行后創(chuàng)建的第一個對象,并且是程序結(jié)束前最后一個清除的對象負責(zé)創(chuàng)建其他對象,包括窗口、視圖和文檔通常應(yīng)用程序類都是CWinApp的子類,默認命名規(guī)則是CXXXApp,其中XXX為應(yīng)用程序名稱MFC框架的基本類CFrameWnd應(yīng)用程序框架窗口類負責(zé)顯示交互界面,包括菜單和工具欄等MFC框架的基本類CDocument應(yīng)用程序文檔類負責(zé)加載和維護文檔默認命名規(guī)則CXXXDoc,XXX為應(yīng)用程序名CView應(yīng)用程序視圖類一個文檔可以對應(yīng)幾個不同的視圖(對應(yīng)不同的顯示方式)默認命名規(guī)則CXXXView,XXX為應(yīng)用程序名第九章圖形處理GDI:Windows提供了一個稱為圖形設(shè)備接口GDI(GraphicsDeviceInterface)的抽象接口,用戶通過調(diào)用GDI函數(shù)與設(shè)備打交道,GDI通過不同設(shè)備提供的驅(qū)動程序?qū)⒗L圖語句轉(zhuǎn)換為對應(yīng)的繪圖指令,避免了直接對硬件進行操作,從而實現(xiàn)所謂的設(shè)備無關(guān)性。設(shè)備環(huán)境為了實現(xiàn)設(shè)備無關(guān)性,應(yīng)用程序的輸出不直接面向顯示器等物理設(shè)備,而是面向一個稱之為設(shè)備環(huán)境DC(DeviceContext)的虛擬邏輯設(shè)備。MFC設(shè)備環(huán)境類:CDC、CPaintDC、CClientDC、CWindowDC、CMetaFileDC等。CDC類既作為其它MFC設(shè)備環(huán)境類的基類,又可以作為一個一般的設(shè)備環(huán)境類使用。CDC*dc=GetDC();dc->TextOut(0,0,"文本");ReleaseDC(dc);CPaintDC類是OnPaint()函數(shù)使用的設(shè)備環(huán)境類,它代表一個窗口的繪圖畫面。如果添加WM_PAINT消息處理函數(shù)OnPaint(),就需要使用CPaintDC類定義設(shè)備環(huán)境對象。CPaintDCdc(this);CClientDC類代表了客戶區(qū)設(shè)備環(huán)境。當在客戶區(qū)實時繪圖時,需要利用CClientDC類定義一個客戶區(qū)設(shè)備環(huán)境。 CClientDCdc(this);dc.MoveTo(point1);dc.LineTo(point2);CWindowDC類代表了整個程序窗口設(shè)備環(huán)境,可以在整個窗口區(qū)域繪圖。
CMetaFileDC類用于創(chuàng)建一個Windows圖元文件設(shè)備環(huán)境MFC設(shè)備環(huán)境類:顏色Windows用COLORREF類型的數(shù)據(jù)存放顏色,它是一個32位整數(shù)。COLORREF類型數(shù)據(jù)的低位字節(jié)存放紅色強度值,第2個字節(jié)存放綠色強度值,第3個字節(jié)存放藍色強度值,高位字節(jié)為0,每一種顏色分量的取值范圍為0到255。
使用畫筆(掌握)使用自定義的畫筆:創(chuàng)建一個指定風(fēng)格的畫筆,創(chuàng)建的畫筆選入設(shè)備環(huán)境,在使用該畫筆繪圖結(jié)束后需要釋放該畫筆。
創(chuàng)建畫筆方法1:CPenpen(PS_DASH,1,RGB(255,0,0));方法2:CPenpen;pen.CreatePen(PS_DASH,1,RGB(255,0,0));(2)選用畫筆
CPen*pOldPen;
pOldPen=pDC->SelectObject(&pen);
pDC->MoveTo(100,100);
pDC->LineTo(200,200)(3)還原畫筆pDC->SelectOb
溫馨提示
- 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)容負責(zé)。
- 6. 下載文件中如有侵權(quán)或不適當內(nèi)容,請與我們聯(lián)系,我們立即糾正。
- 7. 本站不保證下載資源的準確性、安全性和完整性, 同時也不承擔用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。
最新文檔
- 二零二五版龍門吊租賃及吊裝作業(yè)風(fēng)險分擔協(xié)議3篇
- 二零二五年四人共同經(jīng)營民宿的合伙協(xié)議書
- 二零二五年度出租車車輛租賃與智能駕駛技術(shù)研發(fā)合同3篇
- 二零二五年度展會現(xiàn)場搭建及展品運輸合同3篇
- 2025年度高空作業(yè)安全防護施工合同范本4篇
- 二零二五年度城市綠化養(yǎng)護承包合同范本8篇
- 2025年度電動汽車充電樁安全檢測與維護服務(wù)合同3篇
- 2025年新媒體營銷活動合作協(xié)議范本2篇
- 2025年度泥瓦工勞務(wù)分包合同工期延誤責(zé)任協(xié)議
- 2025版農(nóng)業(yè)機械銷售訂購合同(年度版)3篇
- 2024年合肥市廬陽區(qū)中考二模英語試題含答案
- 質(zhì)檢中心制度匯編討論版樣本
- 藥娘激素方案
- 提高靜脈留置使用率品管圈課件
- GB/T 10739-2023紙、紙板和紙漿試樣處理和試驗的標準大氣條件
- 《心態(tài)與思維模式》課件
- C語言程序設(shè)計(慕課版 第2版)PPT完整全套教學(xué)課件
- 行業(yè)會計比較(第三版)PPT完整全套教學(xué)課件
- 高考英語語法填空專項訓(xùn)練(含解析)
- 危險化學(xué)品企業(yè)安全生產(chǎn)標準化課件
- 《美的歷程》導(dǎo)讀課件
評論
0/150
提交評論