




版權說明:本文檔由用戶提供并上傳,收益歸屬內容提供方,若內容存在侵權,請進行舉報或認領
文檔簡介
VC高級編程復習第一章VisualC++集成開發環境MFC、MSDN、IDE項目和項目工區:.dsp
.dsw.cpp.h.clw工作區窗口:類視圖(ClassView)、資源視圖(ResourceView)、文件視圖(FileView)
第五章創建應用程序框架應用程序向導創建應用程序步驟及可程序類型?文檔類、視圖類、框架窗口類、應用程序類的各自功能?各資源標識符前綴的含義:ID_、IDR_、IDD_、IDC_等?AppWizard生成的文件類型后綴文件類型說明dsw工作區文件將項目詳細情況組合到其中dsp項目文件存儲項目的詳細說明hC++頭文件存儲類及其成員的聲明代碼cppC++源文件存儲類成員函數的實現代碼rc資源腳本文件存儲菜單、工具欄、對話框資源rc2資源文件用于將資源包含到項目中ico圖標文件存儲應用程序圖標bmp位圖文件存儲各種位圖clw類向導文件存儲類向導使用的類信息ncb沒有編譯的瀏覽文件保留類視圖和類向導使用的詳細情況opt可選項文件存儲自定義的工作區的顯示情況MFC中資源標識符前綴標識符前綴說明IDR_主菜單、工具欄、圖標和快捷鍵表資源IDD_對話框資源IDC_各種控件和光標IDS_字符串資源IDP_信息對話框的字符串ID_菜單命令項應用程序類的繼承關系示意圖類的命名規則
classNameC+projectName+classType文檔與視圖的關系:一個文檔能擁有幾個視圖,一個視圖能擁有幾個文檔?采用分離機制將數據的管理和顯示分作兩部分,數據管理和維護由文檔負責,數據的顯示和編輯由視圖負責。文檔模板:描述了對應于每一種類型文檔的視圖和窗口的類型,由其來確立文檔、視圖、框架和各種資源之間的固定關系。文檔/視圖的相互作用函數(1)視圖類的GetDocument()函數:函數作用(2)文檔類的UpdateAllViews()函數:函數作用(3)視圖類的OnUpdate()函數:函數作用第六章文檔和視圖菜單欄設計:菜單類CMenu
命令更新:菜單項狀態的維護是依賴CN_UPDATE_COMMAND_UI消息工具欄設計:CToolBar類
狀態欄設計:CStatusBar類
indicators數組classWizard類向導功能鼠標消息處理:主要的鼠標消息:WM_MOUSEMOVE:鼠標移動WM_LBUTTONDOWN:左鍵按下WM_LBUTTONUP:左鍵彈起WM_LBUTTONDBLCLK:雙擊左鍵WM_RBUTTONDOWN:右鍵按下WM_RBUTTONUP:右鍵彈起WM_RBUTTONDBLCLK:雙擊右鍵8.
序列化:概念:對象可以將其當前狀態(由其成員變量的值表示)寫入永久性存儲體(通常是指磁盤)中,以后可以從永久性存儲體中讀取(載入)對象的狀態,從而重建對象。類的對象自己應該具備將狀態值寫入磁盤或從磁盤中讀出的方法(即成員函數),這種對象的保存和恢復的過程稱為序列化。
MFC應用程序文檔的序列化方法:Serialize()自定義類的序列化:類必須直接或間接地從CObject類派生而來;類必須定義一個不帶參數的構造函數;在類的頭文件中使用DECLARE_SERIAL宏,在類的實現文件中使用IMPLEMENT_SERIAL宏;在自定義類中重載序列化成員函數Serialize()。
對話框類:CDialog由于對話框是一個特殊的窗口,所以該類是從CWnd類中派生出來的。對話框有兩種類型:模態對話框和非模態對話框。模態對話框在應用程序能夠繼續執行之前必須被關閉掉。即當我們顯示一個模態對話框時應用程序就會暫停,直到我們關閉對話框我們才能繼續執行程序中的其他任務。非模態對話框允許我們在顯示對話框時轉而執行程序的其他任務而不用關閉對話框。第七章對話框和標準控件模態對話框的創建CDialog::DoModal
()例如彈出模態對話框:CMyDialogdialog;dialog.DoModal();非模態對話框的創建CDialog::Create()CWnd::ShowWindow()
提示信息對話框intAfxMessageBox()intMessageBox()CWnd:MessageBox()
對話框的組成對話框模板對話框模板定義了對話框的特性(比如大小、位置和風格)以及對話框中每個控件的類型和位置。對話框類
從CDialog類派生的對話框類提供編程接口來管理與對話框模板相關聯的對話框。使用對話框(掌握其編程方法)創建和使用對話框的主要步驟創建對話框模板資源和相關控件;用類向導創建對話框類和與控件相關聯的成員變量和消息處理函數;設計程序訪問接口來顯示對話框并獲取與控件相關聯的程序數據。對話框控件訪問幾種方式GetDlgItem()->Get(Set)WindowText()GetDlgItemText()/SetDlgItemText()將控件和變量相關聯將控件和控件變量相關聯對話框DDX/DDV機制
BOOL
UpdateData(
BOOL
bSaveAndValidate
=
TRUE
);
當調用UpdateData(TRUE)時,MFC通過調用DDX函數將數據從控件傳遞到關聯的成員變量;當調用UpdateData(FALSE)時,MFC通過調用DDX函數將數據從成員變量傳遞到關聯的的控件。利用UpdateData()函數實現了在刷新后重新獲取成員變量。標準控件
標準控件:靜態控件、編輯框、按鈕、列表框、組合框和滾動條等。
公共控件:滑塊、進度條、列表視控件、樹視控件和標簽控件等MFC以類的形式對標準控件和公共控件進行了封裝,這些類大部分是從CWnd類直接派生而來。靜態控件靜態控件用于顯示提示字符串或圖形信息。包括靜態文本(StaticText)、圖片控件(PictureControl)和組框(GroupControl)三種類型。管理靜態文本控件和圖片控件的MFC類是CStatic類管理組框的MFC類是CButton類。
編輯框
例:通過“編輯”菜單中的“輸入半徑(I)”命令打開“輸入半徑”對話框,并根據輸入的半徑畫一個圓。
按鈕
按鈕(Button)包括按鍵按鈕、單選按鈕、復選框和組框等4種類型。
封裝按鈕控件的MFC類都是CButton類。按鈕例
編寫一個SDI應用程序Password,程序啟動后首先彈出一個如圖所示的用戶身份確認對話框,當用戶鍵入正確的口令后才能進入程序的主界面。
列表框CListBox類的成員函數:GetCount
獲取列表框中字符串的數目 GetItemDataPtr
獲取一個指向列表框項的指針 GetSel
獲取一列表框項的選擇狀態 SetColumnWidth
設置一多列列表框的寬度 GetCurSel
獲取列表框中當前所選串的索引(從零開始) SetCurSel
選擇一列表框串 AddString
在列表框中增加一個列表項
DeleteString
從列表框中刪除指定的列表項
InsertString
在列表框中指定位置處插入一個列表項 ResetContent
清除列表框中所有列表項 FindString
在列表框中查找一個前綴匹配的列表項FindStringExact
在列表框中查找完全匹配的列表項SelectString
查找并選擇單列表框中的一個列表框串 組合框
簡單組合框——是一個列表框和編輯框的組合,下拉組合框——多加一個下拉按鈕,下拉列表框——與前類相似,只是無法使用編輯框。ComboBox的風格屬性:在各控件原屬性基礎上,屬性控制頁中新增了一個“Data”標簽頁,用于接受列表項的初始化(用Ctrl+Enter換行)。第八章mfc原理1.Windows應用程序特點:Windows應用程序是按照“事件→消息→處理”非順序的機制運行。Windows是一個基于事件的消息驅動系統。所謂消息就是用于描述某個事件發生的信息,而事件是對于Windows的某種操作。消息驅動是Windows應用程序的核心,所有的外部響應(如鍵盤、鼠標和計時器等)都被Windows先攔截,轉換成消息后再發送到應用程序中的目標對象,應用程序根據消息的具體內容進行處理。Windows為每一個應用程序都維護一個或多個消息隊列,發送到每個程序窗口的消息都排成一個隊列。
事件和消息
Windows消息分為三種類型:標準Windows消息:以WM_前綴(但不包括WM_COMMAND)開始的消息,包括鼠標消息、鍵盤消息和窗口消息等。控件通知(ControlNotification)消息:對控件操作引起的消息,是控件和子窗口向其父窗口發出的WM_COMMAND通知消息。命令(Command)消息:由菜單項、工具欄按鈕、快捷鍵等用戶界面對象發出的WM_COMMAND消息。句柄:在Windows中,用句柄標識應用程序中不同的對象和同類對象中不同的實例,如一個具體的窗口、按鈕、輸出設備、畫筆和文件等WinMain()函數為Windows應用程序的入口點函數。MFC類庫結構CObjectCCmdTargetCWnd應用類結構窗口支持異常類文件服務類文檔類框架窗口類控制條類屬性頁表類對話框類視圖類控件類圖形設備環境類控制支持類Windows套接字類圖形對象類菜單類ODBC支持類DAO支持類同步類其它類:Internet支持類自動化類型運行時刻對象支持簡單值類型結構其它支持類集合模板類用于同步的類數組類列表類映射類Internet類MFC框架的基本類消息映射類CCmdTarget該類是CObject的子類,是MFC類庫中所有具有消息映射屬性的基類,消息映射規定了當對象接到命令消息時,應調用哪一個函數對該消息進行處理。命令消息是來自菜單項、命令按鈕和加速鍵的信息,由CCmdTarget派生出的主框架類包括CView、CWinApp、CDocument、CWnd和CframeWnd都可處理命令消息。MFC框架的基本類CWinApp應用程序類負責初始化和運行應用程序程序開始運行后創建的第一個對象,并且是程序結束前最后一個清除的對象負責創建其他對象,包括窗口、視圖和文檔通常應用程序類都是CWinApp的子類,默認命名規則是CXXXApp,其中XXX為應用程序名稱MFC框架的基本類CFrameWnd應用程序框架窗口類負責顯示交互界面,包括菜單和工具欄等MFC框架的基本類CDocument應用程序文檔類負責加載和維護文檔默認命名規則CXXXDoc,XXX為應用程序名CView應用程序視圖類一個文檔可以對應幾個不同的視圖(對應不同的顯示方式)默認命名規則CXXXView,XXX為應用程序名第九章圖形處理GDI:Windows提供了一個稱為圖形設備接口GDI(GraphicsDeviceInterface)的抽象接口,用戶通過調用GDI函數與設備打交道,GDI通過不同設備提供的驅動程序將繪圖語句轉換為對應的繪圖指令,避免了直接對硬件進行操作,從而實現所謂的設備無關性。設備環境為了實現設備無關性,應用程序的輸出不直接面向顯示器等物理設備,而是面向一個稱之為設備環境DC(DeviceContext)的虛擬邏輯設備。MFC設備環境類:CDC、CPaintDC、CClientDC、CWindowDC、CMetaFileDC等。CDC類既作為其它MFC設備環境類的基類,又可以作為一個一般的設備環境類使用。CDC*dc=GetDC();dc->TextOut(0,0,"文本");ReleaseDC(dc);CPaintDC類是OnPaint()函數使用的設備環境類,它代表一個窗口的繪圖畫面。如果添加WM_PAINT消息處理函數OnPaint(),就需要使用CPaintDC類定義設備環境對象。CPaintDCdc(this);CClientDC類代表了客戶區設備環境。當在客戶區實時繪圖時,需要利用CClientDC類定義一個客戶區設備環境。 CClientDCdc(this);dc.MoveTo(point1);dc.LineTo(point2);CWindowDC類代表了整個程序窗口設備環境,可以在整個窗口區域繪圖。
CMetaFileDC類用于創建一個Windows圖元文件設備環境MFC設備環境類:顏色Windows用COLORREF類型的數據存放顏色,它是一個32位整數。COLORREF類型數據的低位字節存放紅色強度值,第2個字節存放綠色強度值,第3個字節存放藍色強度值,高位字節為0,每一種顏色分量的取值范圍為0到255。
使用畫筆(掌握)使用自定義的畫筆:創建一個指定風格的畫筆,創建的畫筆選入設備環境,在使用該畫筆繪圖結束后需要釋放該畫筆。
創建畫筆方法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. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯系上傳者。文件的所有權益歸上傳用戶所有。
- 3. 本站RAR壓縮包中若帶圖紙,網頁內容里面會有圖紙預覽,若沒有圖紙預覽就沒有圖紙。
- 4. 未經權益所有人同意不得將文件中的內容挪作商業或盈利用途。
- 5. 人人文庫網僅提供信息存儲空間,僅對用戶上傳內容的表現方式做保護處理,對用戶上傳分享的文檔內容本身不做任何修改或編輯,并不能對任何下載內容負責。
- 6. 下載文件中如有侵權或不適當內容,請與我們聯系,我們立即糾正。
- 7. 本站不保證下載資源的準確性、安全性和完整性, 同時也不承擔用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。
最新文檔
- 八下語文期中小卷1(答案)
- 專業英語 Unit 3教案學習資料
- 2024年份9月家庭昆蟲飼養員物種逃逸應急處理條款
- 角膜塑形鏡驗配基礎知識
- 建筑行業會計基礎知識
- 《優雅弧線:撐桿跳高》課件
- 激光開孔最小直徑
- 電子商務合作協議委托書
- 貨車合伙協議書二零二五年
- 2024-2025學年中考歷史復習- 階段檢測卷四(世界史)(含答案)
- 江西省八所重點2025屆高三下學期4月聯考(二模)政治試卷(含答案)
- 2025年03月福建省氣象局事業單位筆試歷年典型考題(歷年真題考點)解題思路附帶答案詳解
- 2025年青藏鐵路集團有限公司招聘(184人)筆試參考題庫附帶答案詳解
- 2025資陽輔警考試題庫
- 第一篇 專題三 計算題培優3 帶電粒子在交變場和立體空間中的運動-2025高考物理二輪復習
- 學校保潔方案
- T-SCSF 0004-2020 海洋牧場海藻場建設技術規范
- 血液透析患者心力衰竭的護理
- 2025高職單招考試(語文)試題(附答案)
- 江蘇省2021-2022學年二年級下學期數學期中備考卷一(南京專版)
- 大學生創新創業思維導圖
評論
0/150
提交評論