C++筆試_MFC編程知識要點_第1頁
C++筆試_MFC編程知識要點_第2頁
C++筆試_MFC編程知識要點_第3頁
C++筆試_MFC編程知識要點_第4頁
C++筆試_MFC編程知識要點_第5頁
已閱讀5頁,還剩5頁未讀, 繼續(xù)免費閱讀

下載本文檔

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

文檔簡介

1、MFC編程知識要點特別注意:紅色有框的部分,考試不做要求(即:15,21,30,34,48,49)。1、MFC應用程序中,應用程序類的基類是CWinApp;2、C/C+程序中有且只有一個main函數(shù)!在MFC應用程序中沒有main函數(shù),但是有且只有一個WinMain函數(shù)!3、MFC把WinMain函數(shù)隱藏了,我們在程序中看不到,程序員能看到的是App類中的公有成員函數(shù)InitInstance函數(shù)!這個函數(shù)是CWinApp類中定義的虛函數(shù)。MFC應用程序從應用程序類的InitInstance函數(shù)開始,到ExitInstance結(jié)束。因此,程序員可以在應用程序類的InitInstance函數(shù)中可以

2、添加全局變量的初始化工作,在應用程序類的ExitInstance函數(shù)中進行全局內(nèi)存資源的釋放工作。4、MFC中對話框類為CDialog;5、創(chuàng)建模態(tài)對話框的方法是調(diào)用CDialog類的DoModal函數(shù),該函數(shù)的返回值代表用戶是按下哪一個按鈕返回的;“模態(tài)對話框”的含義是:即在該對話框關(guān)閉之前,其它窗口無法獲得輸入焦點!6、在MFC對話框中顯示提示信息使用函數(shù)AfxMessageBox7、對話框類使用DDX/DDV機制將對話框窗口和控件窗口關(guān)聯(lián)起來,DDX/DDV的代碼不需要自己手工修改,可以直接使用VC中的向?qū)Ы缑鎭碓O置;8、CDialog:UpdateData的函數(shù)的使用MFC使用DDX/

3、DDV機制將對話框類的成員變量和對話框中控件的數(shù)據(jù)關(guān)聯(lián)起來。DDX/DDV在類向?qū)Ы缑嬷性O置。需要了解類向?qū)гO置了DDX/DDV后,代碼發(fā)生了哪些變化,DDX/DDV關(guān)聯(lián)的成員變量在對話框類的構(gòu)造函數(shù)中初始化。編程時可以調(diào)用CDialog類的成員函數(shù)UpdateData更新有DDX/DDV關(guān)聯(lián)的成員變量和控件中的數(shù)據(jù)。在對話框類的消息響應函數(shù)OnOK中,第一句就應該是UpdateData(TRUE);以便于啟動DDV檢驗或者在自己檢驗數(shù)據(jù)合法性之前獲得最終的成員變量值。9、對話框類中控件和成員變量的初始化可以重載CDialog類的消息響應函數(shù)OnInitDialog,這個函數(shù)對應的消息為WM_

4、INITDIALOG;10、退出模態(tài)對話框一般可以選擇響應按鈕IDOK或者IDCANCEL的消息函數(shù)OnOK或者OnCancel11、要求熟悉并掌握:按鈕(CButton)、靜態(tài)控件(CStatic)、編輯框(CEdit)三種控件的使用。12、在MFC中,文檔類的基類是 CDocument,是專門為數(shù)據(jù)處理設計的類。13、在MFC中,視圖類的基類是CView,是專門處理數(shù)據(jù)顯示的類。視圖是一個沒有邊框的窗口(CView是CWnd的派生類)。它位于框架窗口的客戶區(qū)。視圖不能獨立存在,必須依附于一個框架窗口(CFrameWnd)。14、 MFC中文檔模版類為CDocTemplate,有兩個派生類C

5、SingleDocTemplate和CMultiDocTemplate,分別代表單文檔模版類和多文檔模版類。15、 在應用程序類的InitInstance函數(shù)中需要注冊文檔模版類,典型的代碼如下:16、 了解MDI和SDI應用程序的區(qū)別;17、 在視圖類中,文檔數(shù)據(jù)的顯示通過重載函數(shù)CView:OnDraw完成。18、 為了顯示文檔中的數(shù)據(jù),在視圖類中需要獲得視圖類所關(guān)聯(lián)的文檔類指針。這可以通過視圖類的成員函數(shù)GetDocument完成。19、 當文檔數(shù)據(jù)發(fā)生變化時,需要通知與文檔類相關(guān)聯(lián)的所有視圖類更新顯示。有兩種方法:(1)調(diào)用CDocument類的成員函數(shù)UpdateAllViews;(

6、2)調(diào)用CDocument類的成員函數(shù)GetFirstViewPosition 和 GetNextView;20、 在視圖類中需要更新顯示時,可以簡單的調(diào)用下述Invalidate函數(shù)即可。21、 文檔視圖類的應用程序中,工具欄和狀態(tài)欄的創(chuàng)建和初始化代碼寫框架窗口類CMainFrame的WM_CREATE消息響應函數(shù)OnCreate中;22、 在應用程序中可以調(diào)用函數(shù)AfxGetApp獲得應用程序?qū)ο笾羔槪徽{(diào)用AfxGetMainWnd函數(shù)獲得主窗口對象指針;23、 下拉式菜單和工具欄按鈕主要響應消息WM_COMMAND和UPDATE_COMMAND_UI;24、 右鍵菜單:也稱為快捷菜單或者

7、上下文菜單。當用戶點擊鼠標右鍵時,右鍵菜單就會出現(xiàn)在光標所在位置;右鍵菜單是通過CMenu類及其成員函數(shù)在程序運行過程中動態(tài)創(chuàng)建的;右鍵菜單的創(chuàng)建和顯示一般在WM_CONTEXTMENU消息響應函數(shù)中編程實現(xiàn);25、 主要的鼠標消息:l WM_MOUSEMOVE:鼠標移動l WM_LBUTTONDOWN:左鍵按下l WM_LBUTTONUP:左鍵彈起l WM_LBUTTONDBLCLK:雙擊左鍵l WM_RBUTTONDOWN:右鍵按下l WM_RBUTTONUP:右鍵彈起l WM_RBUTTONDBLCLK:雙擊右鍵26、 在MFC中定義了一些宏類型,例如BOOL型,也是一種邏輯變量類型,只

8、有兩個值TRUE和FALSE。其它常見的宏類型:l UINT = unsigned intl BYTE = unsigned char27、 MFC在文檔類CDocument中定義了OnOpenDocument和OnSaveDocument兩個虛函數(shù)。用戶可以根據(jù)需要重載這兩個函數(shù)以實現(xiàn)文件的讀寫。28、 Windows提供了一個稱為圖形設備接口(GDI)的抽象接口。用戶調(diào)用GDI函數(shù),GDI通過不同設備提供的設備驅(qū)動程序?qū)⒗L圖語句轉(zhuǎn)換為對應的繪圖指令,避免了用戶直接對硬件操作,從而實現(xiàn)設備無關(guān)性。29、 MFC對GDI函數(shù)和繪圖對象進行了封裝。MFC將GDI函數(shù)封裝在設備環(huán)境類CDC中。MF

9、C提供的設備環(huán)境類有CDC、CPaintDC、CClientDC、CWindowDC和CMetaFileDC,其中CDC為基類,其它都是CDC的派生類。30、 CPaintDC是OnPaint()函數(shù)使用的設備環(huán)境類,代表一個窗口的繪圖畫面。OnPaint是WM_PAINT消息處理函數(shù),當窗口尺寸改變、或者當窗口恢復了先前被遮蓋的部分,應用程序窗口都會收到WM_PAINT消息。31、 CClientDC類代表了客戶區(qū)設備環(huán)境。當在客戶區(qū)實時繪圖時,需要利用CClientDC類定義一個客戶區(qū)設備環(huán)境。32、 Windows坐標系分為邏輯坐標系和設備坐標系兩種,GDI支持這兩種坐標系。一般GDI的

10、文本和圖形輸出函數(shù)使用邏輯坐標,而在客戶區(qū)移動或者按下鼠標所得到的鼠標位置使用設備坐標。33、 設備坐標系根據(jù)原點位置和用途分為:屏幕坐標系、窗口坐標系和客戶區(qū)坐標系三種。34、 屏幕坐標系以屏幕左上角為原點,一些與整個屏幕有關(guān)的函數(shù)均采用屏幕坐標。例如CreateWindow、MoveWindow、GetCursorPos和SetCursorPos,另外右鍵彈出式菜單的消息處理函數(shù)WM_CONTEXTMENU也使用屏幕坐標。35、 窗口坐標系以窗口左上角為原點,包括窗口標題欄、菜單欄和工具欄等范圍。一般情況下很少在上述范圍區(qū)域繪圖,因此這種坐標系很少使用。36、 客戶區(qū)坐標系是最常使用的坐標

11、系,以窗口客戶區(qū)左上角為原點,主要用于客戶區(qū)的繪圖輸出和窗口消息處理。37、 鼠標消息的坐標參數(shù)直接使用客戶區(qū)坐標,CDC類用于繪圖的成員函數(shù)使用與客戶區(qū)坐標對應的邏輯坐標。38、 屏幕坐標與客戶區(qū)坐標的轉(zhuǎn)換使用CWnd的成員函數(shù)ScreenToClient和ClientToScreen。39、 設備坐標與邏輯坐標的轉(zhuǎn)換可以使用CDC類的成員函數(shù)DPtoLP和LPtoDP。(D:Device,L:Logic)。例如:40、 MFC中滾動視圖類為CScrollView41、 計算機顯示器使用RGB色彩(即顏色由R、G和B三個分量表示)。Windows中定義了一個數(shù)據(jù)類型COLORREF表示顏色。

12、為了方便,Windows定義了RGB宏用于設置顏色,使用方式為RGB(R, G, B)。R,G和B的取值范圍為0255。42、 MFC封裝了GDI對象,提供了CPen(畫筆)、CBrush(畫刷)、CFont(字體)、CBitmap(位圖)和CPalette(調(diào)色板)等GDI對象類。將一個GDI對象關(guān)聯(lián)到設備環(huán)境的方法是為設備環(huán)境選擇一個GDI對象。43、 CDC類提供了成員函數(shù)SelectObject用于選擇用戶自己創(chuàng)建的GDI對象。選擇操作成功后函數(shù)將返回以前GDI對象指針,否則返回NULL。44、 繪圖工具的使用流程:l 創(chuàng)建自定義GDI對象l 選擇自定義GDI對象l 繪圖l 還原默認G

13、DI對象l 注銷、釋放自定義GDI對象45、 常見的畫筆創(chuàng)建方法(構(gòu)造函數(shù)和CreatePen)46、 常見的畫刷創(chuàng)建方法l CBrush:CBrush(COLORREF crColor);l CBrush:CBrush(int nIndex, COLORREF crColor );l BOOL CBrush:CreateSolidBrush(COLORREF crColor);l BOOL CBrush:CreateHatchBrush(int nIndex, COLORREF crColor);47、 Windows預定義了一些簡單風格的GDI對象,用戶使用這些GDI對象時,無需自己創(chuàng)建它們,可以直接將它們選入當前的設備環(huán)境,這些GDI對象稱為堆對象;堆對象包括堆畫筆、堆畫刷和堆字體。堆畫筆和堆畫刷的樣式參見教材p314. 表8-5。選擇

溫馨提示

  • 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
  • 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
  • 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁內(nèi)容里面會有圖紙預覽,若沒有圖紙預覽就沒有圖紙。
  • 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
  • 5. 人人文庫網(wǎng)僅提供信息存儲空間,僅對用戶上傳內(nèi)容的表現(xiàn)方式做保護處理,對用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對任何下載內(nèi)容負責。
  • 6. 下載文件中如有侵權(quán)或不適當內(nèi)容,請與我們聯(lián)系,我們立即糾正。
  • 7. 本站不保證下載資源的準確性、安全性和完整性, 同時也不承擔用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。

評論

0/150

提交評論