版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請(qǐng)進(jìn)行舉報(bào)或認(rèn)領(lǐng)
文檔簡介
1、類是C+的精華,是進(jìn)行封裝和數(shù)據(jù)隱藏的工具,是C+的一種數(shù)據(jù)類型,使用類的變量則稱為對(duì)象。類的成員函數(shù)的具體實(shí)現(xiàn)方法?第一種是在類的內(nèi)部定義(內(nèi)聯(lián)函數(shù))第二種是在類的外部定義類成員屬性:私有、保護(hù)、公共 私有的:私有成員只能被本類的成員函數(shù)訪問使用;保護(hù)的:可以被本類的,還可以被本類派生的類的成員訪問;公共:成員可以被本類及以外的函數(shù)訪問,是外部接口。友元函數(shù):用friend把其他類聲明為一個(gè)類的友元,允許訪問類的私有部分,不是成員函數(shù)C+三大特點(diǎn):封裝性 繼承性 多態(tài)性類的封裝:數(shù)據(jù)和數(shù)據(jù)的處理封裝在一起,利于隱藏繼承:代碼重用多態(tài)特性:同一名稱,對(duì)應(yīng)不同實(shí)現(xiàn),執(zhí)行不同代碼(重載) 什么是構(gòu)
2、造函數(shù)?:構(gòu)造函數(shù)在建立對(duì)象時(shí)調(diào)用;特殊的成員函數(shù),用來分配內(nèi)存空間,初始化成員。構(gòu)造函數(shù)名和類名相同,定義對(duì)象時(shí)編譯系統(tǒng)自動(dòng)調(diào)用構(gòu)造函數(shù)完成對(duì)象的初始化。一個(gè)類可以有多個(gè)不同參數(shù)的構(gòu)造函數(shù)重載。 構(gòu)造函數(shù)可以有參數(shù),也可以無參數(shù),但不能有返回值。當(dāng)不顯示定義時(shí),系統(tǒng)會(huì)有默認(rèn)的構(gòu)造函數(shù);會(huì)把對(duì)象中的變量初始化為0;構(gòu)造函數(shù)不能被顯示調(diào)用,只能是定義對(duì)象時(shí)被編譯器自動(dòng)的調(diào)用。什么是析構(gòu)函數(shù)?在銷毀對(duì)象時(shí)調(diào)用波浪號(hào)和類名構(gòu)成的函數(shù)是析構(gòu)函數(shù);沒有參數(shù),沒有返回值,不能重載,一個(gè)類只有一個(gè)析構(gòu)函數(shù)。析構(gòu)函數(shù)是一種特殊的由用戶定義的成員函數(shù),當(dāng)該類的對(duì)象離開了它的域,或者delete表達(dá)式被應(yīng)用到該類
3、對(duì)象的一個(gè)指針上時(shí),析構(gòu)函數(shù)會(huì)自動(dòng)被調(diào)用;沒有虛擬構(gòu)造函數(shù),可以有虛擬析構(gòu)函數(shù);基類的析構(gòu)函數(shù)是虛擬的,則派生類的析構(gòu)函數(shù)也是虛擬的。1什么是事件驅(qū)動(dòng):程序設(shè)計(jì)根據(jù)事件或消息產(chǎn)生驅(qū)動(dòng)執(zhí)行處理函數(shù)。Windows程序的執(zhí)行順序取決于事件發(fā)生的順序,程序的執(zhí)行順序是由順序產(chǎn)生的消息驅(qū)動(dòng)的,但是消息的產(chǎn)生往往并不要求有次序之分。 消息:描述事件發(fā)生的信息,程序是由消息驅(qū)動(dòng)的。2什么是句柄句柄是一個(gè)4字節(jié)長的數(shù)值,用于標(biāo)識(shí)應(yīng)用程序中不同的對(duì)象和同類對(duì)象中不同的實(shí)例 ;應(yīng)用程序通過句柄訪問相應(yīng)的對(duì)象信息。消息的組成: 消息號(hào),字參數(shù)和長字參數(shù)。消息結(jié)構(gòu): MSG 點(diǎn)的結(jié)構(gòu):POINT 矩形結(jié)構(gòu):RECT
4、3 Windows應(yīng)用程序的基本工作機(jī)制和流程?Windows應(yīng)用程序組成:入口函數(shù)WinMain和窗口函數(shù)WndProc初始化窗口類注冊(cè)窗口類創(chuàng)建窗口顯示窗口繪制用戶區(qū)消息循環(huán)(分配消息到窗口函數(shù))執(zhí)行窗口函數(shù)響應(yīng)消息。窗口的注冊(cè)、創(chuàng)建、消息響應(yīng)LRESULT CALLBACK WndProc(HWND,UINT,WPARAM,LPARAM);/窗口函數(shù)說明/*以下是入口函數(shù)的代碼*/int WINAPI WinMain(HINSTANCE hInstance,HINSTANCE hPrevInstance,LPSTR lpCmdLine,int nCmdShow)省略部分代碼,定義一些對(duì)象
5、及變量./*以下是初始化窗口類*/省略部分代碼wcex的成員變量初始化.if (!RegisterClassEx(&wcex)/窗口類的注冊(cè)如果注冊(cè)失敗則發(fā)出警告MessageBox(NULL,_T("窗口注冊(cè)失敗"),_T("窗口注冊(cè)"),NULL);return 1;hWnd=CreateWindow()/*創(chuàng)建窗口*/if(!hWnd)/如果創(chuàng)建窗口失敗則發(fā)出警告MessageBox(NULL,_T("創(chuàng)建窗口失敗"),_T("創(chuàng)建窗口"),NULL);return 1;ShowWindow(hWnd
6、,nCmdShow);/顯示窗口UpdateWindow(hWnd);/繪制用戶區(qū)while(GetMessage(&msg,NULL,0,0)/消息循環(huán)TranslateMessage(&msg);DispatchMessage(&msg);return(int )msg.wParam;/程序終止時(shí)將信息返回系統(tǒng)/*一下是窗口函數(shù)代碼*/LRESULT CALLBACK WndProc()switch(message)case WM_DESTROY:PostQuitMessage(0); break; /調(diào)用PostQuitMessage發(fā)出WM_Quit消息defa
7、ult: return DefWindowProc(hWnd,message,wParam,LParam);break;/默認(rèn)采用系統(tǒng)消息默認(rèn)處理函數(shù)return 0;第四章1什么是GDI和設(shè)備無關(guān)性?圖形設(shè)備按口(GDI) GDI負(fù)責(zé)系統(tǒng)與用戶或繪圖程序之間的信息交換,并控制在輸出設(shè)備上顯示圖形或文字, 是Windows系統(tǒng)的重要組成部分 。設(shè)備的無關(guān)性,就是操作系統(tǒng)屏蔽了硬件設(shè)備的差異,因而設(shè)備無關(guān)性能使用戶編程時(shí)無需考慮特殊的硬件設(shè)置2. 獲取設(shè)備環(huán)境的方法(1) 調(diào)用BeginPaint函數(shù)應(yīng)用程序響應(yīng)WM_PAINT消息進(jìn)行圖形刷新時(shí),主要通過調(diào)用BeginPaint函數(shù)獲取設(shè)備環(huán)境
8、 ,用EndPaint函數(shù)釋放。2) 調(diào)用GetDC函數(shù) 如果繪圖工作并非由WM_PAINT消息驅(qū)動(dòng),則調(diào)用GetDC函數(shù)獲取設(shè)備環(huán)境。hdc=GetDC(hwnd); 用ReleaseDC函數(shù)釋放ReleaseDC(HWND hwnd);hdc=BeginPaint(hWnd,&ptstr);/獲得設(shè)備環(huán)境SelectObject(hdc,hPen);/hdc環(huán)境句柄,hpen畫筆句柄/畫直線的函數(shù)MoveToEx( hdc,300,500,NULL);/線的起點(diǎn)LineTo(hdc,300,650);/線的終點(diǎn)/畫橢圓Arc(左上坐標(biāo)),(右下坐標(biāo)),(起始點(diǎn)坐標(biāo))(終止點(diǎn)坐標(biāo))/
9、畫矩形Rectangle(hDC,50,70,150,130);/環(huán)境句柄,左上坐標(biāo),右下坐標(biāo)第五章HFONT hF;/定義文本句柄hF= GetStockObject( );/獲得系統(tǒng)字體句柄SelectObject(hdc,hF);/選入設(shè)備環(huán)境GetTextExtentPoint32(/獲取當(dāng)前字符串的寬度的API HDC hdc, LPCTSTR lpszString,/指定的字符串 int nLength, /字符串中的字符數(shù) LPSIZE lpSize/返回字符串寬度及高度的SIZE數(shù)據(jù)結(jié)構(gòu)的地址)TextOut(/文本輸出函數(shù) HDC hdc, int X, int Y, /X,
10、 Y為用戶區(qū)中字符串的起始坐標(biāo) LPCTSTR lpstring, /lpstring為顯示的字符串 int nCount /nCount為字符串中的字節(jié)數(shù));第6章虛擬碼是一種與設(shè)備無關(guān)的鍵盤編碼,它的值存放在鍵盤消息的wParam參數(shù)中,用以標(biāo)識(shí)哪一個(gè)鍵被按下或釋放,最常用的虛擬碼已經(jīng)在Windows.h中定義。鍵盤消息包括:按鍵消息、字符消息鼠標(biāo)消息響應(yīng)中:lParam包含了鼠標(biāo)位置,低位包含了光標(biāo)的x的值,高位包含了光標(biāo)的y值。wParam包含了指示各種虛鍵狀態(tài)的值case WM_KEYDOWN:InvalidateRect(hWnd,NULL,1);/刷新用戶區(qū)case WM_LBU
11、TTONDOWN: lButtonDownSign=true;/左鍵按下InvalidateRect(hWnd,NULL,1);第7章 資源描述文件中ACCELERATORS加速鍵 如“x” ID /表示與ctrl的組合鍵資源描述文件中DIALOG定義對(duì)話框MENUITEM用于定義菜單項(xiàng)BITMAP用于定義位圖ICON 用于定義圖標(biāo)什么是模式對(duì)話框和非模式對(duì)話框?對(duì)話框是一個(gè)彈出式窗口,它一般用于用戶輸入或與用戶進(jìn)行交互活動(dòng)的場(chǎng)合模式對(duì)話框不允許用戶在關(guān)閉對(duì)話框之前切換到應(yīng)用程序的其他窗口非模式對(duì)話框允許用戶在該對(duì)話框與應(yīng)用程序其他窗口之間的切換,非模式對(duì)話框從WinMain函數(shù)的消息循環(huán)中接
12、收輸入第9章 Windows 標(biāo)準(zhǔn)控件在可視化編程中的應(yīng)用所有的控件都是CWnd類的派生類,CButton類的成員函數(shù)GetCheck( )/返回檢查框或單選按鈕的選擇狀態(tài)SetCheck( )/設(shè)置檢查框或單選按鈕的選擇狀態(tài)GetBitmap()/獲得位圖的句柄SetBitmap()/指定按鈕上顯示的位圖GetButtonStyle()/獲得有關(guān)按鈕控件樣式的信息SetButtonStyle()/改變按鈕樣式GetCursor()/獲得光標(biāo)圖像的句柄SetCursor()/指定按鈕控件上的光標(biāo)圖像GetIcon()/獲得圖標(biāo)句柄SetIcon()/指定一個(gè)按鈕上顯示的圖標(biāo)GetState()
13、/獲得一個(gè)按鈕控件的選中、選擇、或聚焦?fàn)顟B(tài)SetState()/設(shè)置一個(gè)按鈕控件的選擇狀態(tài)9.2 編輯框編程實(shí)例 簡單計(jì)算器程序(1)建立基于對(duì)話框的工程(2)設(shè)置對(duì)話框上控件的屬性(3)按鈕控件添加成員變量(4)添加消息的相應(yīng)處理函數(shù)void CcalcDlg:OnEnChangeEdit1()/每個(gè)編輯框控件的消息響應(yīng)函數(shù)UpdateData(TRUE);switch (m_operator) case 0: m_result = m_num1 + m_num2; break;case 1: m_result = m_num1 - m_num2; break;case 2: m_resul
14、t = m_num1*m_num2; break;case 3: m_result = m_num1 / m_num2; break;UpdateData(FALSE);/將成員變量的值更新到對(duì)話框控件里void CcalcDlg:OnBnClickedButton1()/重置按鈕的消息相應(yīng)數(shù)值初始為0m_result = m_num1 = m_num2 = m_operator = 0;UpdateData(FALSE);第10章 在MFC中創(chuàng)建應(yīng)用程序的資源 幾個(gè)消息響應(yīng)機(jī)制: COMMAND消息的響應(yīng) :是對(duì)單擊菜單的響應(yīng) UPDATE_COMMAND_UI消息的響應(yīng):單擊菜單后菜單狀態(tài)
15、顯示選中。掌握對(duì)話框資源和單文檔程序的使用方法:1. 新建mfc應(yīng)用程序,選擇單文檔2. 創(chuàng)建對(duì)話框資源 ,然后添加對(duì)話框資源,為對(duì)話框定義基類為CDialog的類,添加控件和相關(guān)聯(lián)的變量。3. 在資源視圖添加菜單,添加消息響應(yīng)程序,在消息響應(yīng)程序里用對(duì)話框類定義對(duì)話框?qū)ο螅瑘?zhí)行對(duì)話框的操作。4. 視圖中輸出要顯示的內(nèi)容。5. 文檔串行化,保存數(shù)據(jù)到磁盤。第 11章 單文檔文檔的任務(wù)是對(duì)數(shù)據(jù)進(jìn)行管理和維護(hù),數(shù)據(jù)保存在文檔類的成員變量中。文檔類通過串行化的過程將數(shù)據(jù)保存到磁盤文件或數(shù)據(jù)庫中文檔類還可處理來自如菜單、工具欄按鈕和加速鍵的WM_COMMAND消息。視圖:視圖可以直接或間接的訪問文檔類
16、中的成員變量,它從文檔類中(而不是從存儲(chǔ)介質(zhì)中)將文檔中的數(shù)據(jù)取出來,然后在屏幕上顯示文檔的數(shù)據(jù)。視圖是文檔的不同表現(xiàn)形式,一個(gè)文檔可以有多個(gè)視圖,但每個(gè)視圖只能對(duì)應(yīng)于一個(gè)確定的文檔 。(文件可由不同程序打開)機(jī)制:視圖通過GetDocument成員函數(shù)獲得指向相關(guān)聯(lián)的文檔對(duì)象的指針,通過該指針調(diào)用文檔類的成員函數(shù)來從文檔中讀取數(shù)據(jù),視圖把數(shù)據(jù)顯示于計(jì)算機(jī)屏幕上。用戶通過與視圖的交互來查看數(shù)據(jù)并對(duì)數(shù)據(jù)進(jìn)行修改,視圖通過相關(guān)聯(lián)的文檔類的成員函數(shù)將經(jīng)過修改的數(shù)據(jù)傳遞給文檔對(duì)象,文檔對(duì)象獲得修改過的數(shù)據(jù)之后,對(duì)其進(jìn)行必要的修改,最后保存到永久介質(zhì)(如磁盤文件)中。Doc/View框架核心基本類只有五
17、個(gè):1、CWinApp應(yīng)用程序類代表主程序,CWinApp本身是不可見的,它負(fù)責(zé)維護(hù)進(jìn)程的啟動(dòng)、終止、消息循環(huán)、命令行參數(shù)、資源管理 2 CDocument文檔類 為每一個(gè)文檔類型從CDocument類派生一個(gè)相應(yīng)的文檔類。 為文檔類添加成員變量,這些變量主要用來保存文檔的數(shù)據(jù),并使其它的對(duì)象(如視圖對(duì)象)可以訪問這些成員變量,從而實(shí)現(xiàn)文檔和視圖的相互搭配使用。 重載Serialize成員函數(shù),實(shí)現(xiàn)文檔數(shù)據(jù)的串行化。 3 CView 視圖類(CView)是從CWnd類下派生的 CView類中最常用的是OnDraw函數(shù),該函數(shù)在屏幕發(fā)生變化或因?yàn)榻裹c(diǎn)的變化需要重繪時(shí)調(diào)用,沒有該函數(shù),就不可能在程
18、序的切換后保證屏幕的正確顯示。4 CDocTemplate 文檔模板類負(fù)責(zé)具體的關(guān)聯(lián)文檔、視圖、框架的創(chuàng)建 5 CFrameWnd框架類框架窗口維護(hù)了很多幕后的工作,例如工具條、菜單、狀態(tài)條的顯示、更新,視圖的位置和顯示,其它可??靠臻g的停靠和動(dòng)態(tài)尺寸調(diào)整。許多默認(rèn)為MFC應(yīng)用程序應(yīng)該具備的基本功能都是CframeWnd類在完成 。串行化:將對(duì)象寫入字節(jié)流和從字節(jié)流恢復(fù)對(duì)象的操作 串行化除了可以使用文件保存對(duì)象之外,還可以通過網(wǎng)絡(luò)、串口傳輸對(duì)象,因此使用字節(jié)流。消息是描述事件發(fā)生的信息(如按下鼠標(biāo)或鍵盤),Windows應(yīng)用程序利用Windows消息(Message)與應(yīng)用程序及系統(tǒng)進(jìn)行信息交換。 Sdk程序通過窗口函數(shù)設(shè)計(jì)對(duì)應(yīng)消息的處理程序,當(dāng)消息發(fā)生時(shí)執(zhí)行對(duì)應(yīng)消息的代碼; Mfc程序通過消息映射機(jī)
溫馨提示
- 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請(qǐng)下載最新的WinRAR軟件解壓。
- 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請(qǐng)聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
- 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁內(nèi)容里面會(huì)有圖紙預(yù)覽,若沒有圖紙預(yù)覽就沒有圖紙。
- 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
- 5. 人人文庫網(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ì)自己和他人造成任何形式的傷害或損失。
最新文檔
- 賓館會(huì)議室租賃協(xié)議
- 屋頂補(bǔ)漏工程合作合同
- 標(biāo)準(zhǔn)幼兒園教師聘用協(xié)議書樣本
- 【初中地理】大洲和大洋+課件-2024-2025學(xué)年七年級(jí)地理上學(xué)期(人教版2024)
- 2024年有限合伙協(xié)議書利潤分配
- 委托持股協(xié)議
- 代理注冊(cè)香港有限公司協(xié)議書
- 涉外許可證合同書撰寫技巧
- 同業(yè)資金融通合同樣式
- 雙方同意解除婚姻協(xié)議書格式
- 國家突發(fā)公共衛(wèi)生事件相關(guān)信息報(bào)告管理工作規(guī)范課件
- 【川教版】《生命 生態(tài) 安全》一年級(jí)上冊(cè)第11課 我是小學(xué)生啦 課件
- 我國計(jì)算機(jī)發(fā)展歷史
- 德育主題班會(huì)-與同學(xué)友好相處課件
- 廣西南寧市邕寧區(qū)2023-2024學(xué)年上學(xué)期八年級(jí)期中數(shù)學(xué)試卷
- ipad商標(biāo)侵權(quán)案分析
- 2024中考語文《水滸傳》歷年真題(解析版)
- 【星巴克國際避稅的案例分析12000字(論文)】
- 《小學(xué)急救知識(shí)培訓(xùn)》課件
- 2024年磷礦及磷化工行業(yè)分析報(bào)告及未來發(fā)展趨勢(shì)
- 中藥熱奄包教學(xué)課件
評(píng)論
0/150
提交評(píng)論