windows編程(補(bǔ)充)模板_第1頁(yè)
windows編程(補(bǔ)充)模板_第2頁(yè)
windows編程(補(bǔ)充)模板_第3頁(yè)
windows編程(補(bǔ)充)模板_第4頁(yè)
windows編程(補(bǔ)充)模板_第5頁(yè)
已閱讀5頁(yè),還剩27頁(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)介

MFC編程MFC(MicrosoftFundationClass)微軟基礎(chǔ)類庫(kù),其中包含用來(lái)開(kāi)發(fā)c++應(yīng)用程序和windows應(yīng)用程序的一組類。應(yīng)用程序類:

是CWinApp類中派生出來(lái)的。

功能:

為應(yīng)用程序段的所有對(duì)象,包括文檔、視圖和邊框窗口進(jìn)行的初始化工作。在該類中定義了一個(gè)唯一的全局變量theApp,它代表了應(yīng)用程序運(yùn)行實(shí)例的主線程。theApp在程序的整個(gè)運(yùn)行期間都是存在的,它若銷毀則意味著運(yùn)行程序?qū)嵗南?。?duì)話框類:

是CDialog類中派生出來(lái)的。

功能:

封裝了對(duì)話框的功能,主要用于輸出信息和接受用戶的輸入??丶–ontrol)

是Windows系統(tǒng)定義的一類標(biāo)準(zhǔn)子窗口,它們中的大多數(shù)可以捕獲事件并向父窗口發(fā)送消息。

控件的外觀和功能由其屬性決定。

設(shè)置控件對(duì)應(yīng)變量:如果要在程序中訪問(wèn)對(duì)話框中的控件,就必須給這些控件分別設(shè)置對(duì)應(yīng)的變量。所謂設(shè)置對(duì)應(yīng)變量,就是給程序中要用到的控件對(duì)象定義一個(gè)與之關(guān)聯(lián)的變量作為控件的代理。也就是說(shuō),一個(gè)變量代表一個(gè)具體的控件對(duì)象。舉例:密碼驗(yàn)證對(duì)話框密碼驗(yàn)證對(duì)話框Windows程序設(shè)計(jì)的基本概念(1)事件:windows程序設(shè)計(jì)圍繞著事件或消息的產(chǎn)生驅(qū)動(dòng)運(yùn)行處理函數(shù)(過(guò)程)。事件是指在windows環(huán)境下,應(yīng)用程序啟動(dòng)后,系統(tǒng)等待用戶在圖像用戶界面內(nèi)的輸入選擇,如鼠標(biāo)按鍵、鍵盤按鍵、窗口被創(chuàng)建、關(guān)閉、改變大小、移動(dòng)等。事件產(chǎn)生方式:通過(guò)輸入設(shè)備,如鍵盤和鼠標(biāo)。通過(guò)屏幕上的可視對(duì)象,如菜單項(xiàng)、工具欄按鈕等。來(lái)自windows內(nèi)部。Windows程序設(shè)計(jì)的基本概念(2)消息: 只要發(fā)生事件,系統(tǒng)就產(chǎn)生消息,消息描述了事件的類別,包含了相應(yīng)信息,windows應(yīng)用程序利用消息與系統(tǒng)及其他應(yīng)用程序進(jìn)行信息交流。 當(dāng)windows捕獲一個(gè)事件后,會(huì)編寫一條消息,并將相關(guān)信息放入一個(gè)數(shù)據(jù)結(jié)構(gòu)中,然后將包含此數(shù)據(jù)結(jié)構(gòu)的消息發(fā)送給需要此消息的應(yīng)用程序。

windows消息在文件中都是以宏定義的常數(shù)形式存在。如:WM_LBUTTONDOWN:?jiǎn)螕羰髽?biāo)左鍵產(chǎn)生此消息BOOL

UpdateData(BOOL

bSaveAndValidate=TRUE)函數(shù)說(shuō)明是MFC的對(duì)話框類的成員函數(shù),用來(lái)刷新數(shù)據(jù)。函數(shù)使用

參數(shù)值為TRUE時(shí),刷新窗體,

控件的值—>變量。參數(shù)值為FALSE時(shí),變量值—>控件。舉例2:簡(jiǎn)易計(jì)算器舉例2:簡(jiǎn)易計(jì)算器(改進(jìn))voidCCale2Dlg::OnButton1(){ //TODO:Addyourcontrolnotificationhandlercodehere

this->UpdateData(TRUE);

switch(m_oper) { case0: m_edit3=m_edit1+m_edit2; break; case1: m_edit3=m_edit1-m_edit2; break; } this->UpdateData(FALSE);}2文檔/視圖概念文檔/視圖概念默認(rèn)情況下,“MFC應(yīng)用程序向?qū)А庇梦臋n類和視圖類創(chuàng)建應(yīng)用程序主干,并將數(shù)據(jù)管理分成文檔類和視圖類。文檔類:文檔是應(yīng)用程序數(shù)據(jù)元素的集合。文檔類用于管理和維護(hù)數(shù)據(jù),存儲(chǔ)數(shù)據(jù)和管理數(shù)據(jù)的打印,并協(xié)調(diào)更新多個(gè)數(shù)據(jù)視圖。11.1文檔/視圖概念 視圖類:視圖是數(shù)據(jù)的用戶界面,負(fù)責(zé)顯示全部或部分?jǐn)?shù)據(jù),管理用戶與數(shù)據(jù)之間的交互,包括選擇和編輯。11.2視圖類CView幾個(gè)重要的視圖類成員函數(shù)CDocument*GetDocument()返回與該視圖類對(duì)象關(guān)聯(lián)的文檔類對(duì)象的指針。用于從文檔中獲取數(shù)據(jù)。11.2視圖類CView幾個(gè)重要的視圖類成員函數(shù)virtualvoidOnDraw(

CDC*pDC)=0;用于更新視圖。在函數(shù)中,首先調(diào)用GetDocument()函數(shù),取得指向當(dāng)前視圖所對(duì)應(yīng)的文檔的指針,然后通過(guò)這個(gè)指針訪問(wèn)文檔中的數(shù)據(jù)。然后使用傳遞過(guò)來(lái)的CDC類對(duì)象的指針pDC進(jìn)行實(shí)際的繪圖或打印。應(yīng)該被派生類重載。CDC類中封裝了大量的繪圖和文字輸出方法文字信息顯示

TextOut畫線:

step1MoveTo()

(返回移動(dòng)前的繪圖位置),

step2LineTo()繪制矩形Rectangle繪制橢圓

Ellipse文檔類CDocument文檔數(shù)據(jù)成員的初始化當(dāng)用戶啟動(dòng)應(yīng)用程序、或選擇了“FileNew”菜單時(shí),需要對(duì)文檔的數(shù)據(jù)成員初始化。virtualBOOLOnNewDocument();

用于初始化文檔類的數(shù)據(jù)成員。應(yīng)用程序啟動(dòng):由CDocument的派生類CMyDoc的構(gòu)造函數(shù)調(diào)用。選擇“FileNew”菜單:由消息處理函數(shù)CWinApp::OnFileNew()調(diào)用。

重繪客戶區(qū)何時(shí)需要重繪整個(gè)窗口或區(qū)域?應(yīng)用程序啟動(dòng)、建立新窗口;改變窗口大小、移動(dòng)、恢復(fù)被遮蓋的部分;窗口內(nèi)容(數(shù)據(jù))被修改;窗口無(wú)效時(shí),系統(tǒng)發(fā)送兩個(gè)消息:WM_PAINT:通知客戶區(qū)有變化,由CWnd::OnPaint()函數(shù)響應(yīng),并間接調(diào)用用戶重載的CView::OnDraw()成員函數(shù)。WM_NCPAINT:通知非客戶區(qū)有變化,由系統(tǒng)負(fù)責(zé)該部分的重繪。WM_PAINT消息由系統(tǒng)自動(dòng)傳遞WM_PAINT消息需要用戶編程控制發(fā)送

重繪客戶區(qū)如何實(shí)現(xiàn)用戶編程發(fā)送WM_PAINT消息?

voidCWnd::Invalidate(BOOLbErase=TRUE);觸發(fā)WM_PAINT消息,導(dǎo)致全部窗口無(wú)效(需要重繪)。

重繪客戶區(qū)如何實(shí)現(xiàn)用戶編程發(fā)送WM_PAINT消息?(續(xù))

voidCWnd::InvalidateRect(LPCRECTlpRect,BOOLbErase=TRUE);說(shuō)明:觸發(fā)WM_PAINT消息,導(dǎo)致指定區(qū)域被重繪。bErase:指明重繪時(shí)對(duì)背景的處理方式:

bErase=TRUE:要求背景擦去重繪;bErase=FALSE:背景保持不變。鍵盤的消息響應(yīng)函數(shù)Onkeydown

afx_msgvoidOnkeydown

(UINTnChar,UINTnRepCnt,UINTnFlags)功能:鍵盤的消息響應(yīng)函數(shù),用于處理消息WM_KEYDOWN其中:

nChar:用戶按鍵代碼。如:VK_0~VK_9數(shù)字鍵0~9(不在數(shù)字鍵盤上)

VK_A~VK_Z字幕鍵A~ZVK_UP向上方向鍵

VK_DOWN向下方向鍵

VK_LEFT向左方向鍵

VK_RIGHT向右方向鍵UNIT:windows數(shù)據(jù)類型,相當(dāng)于unsignedint定時(shí)器消息定時(shí)器消息定時(shí)器概述定時(shí)器每隔一定的時(shí)間間隔,中斷一次,并觸發(fā)定時(shí)器消息WM_TIMER。WM_TIMER消息的處理:加入系統(tǒng)消息隊(duì)列,由系統(tǒng)處理;加入應(yīng)用程序隊(duì)列,由應(yīng)用程序處理??梢杂赡J(rèn)的定時(shí)器處理函數(shù)OnTimer()處理,也可以指定某個(gè)特定的函數(shù)處理。定時(shí)器消息定時(shí)器的使用:設(shè)置定時(shí)器重載定時(shí)器消息處理函數(shù)刪除定時(shí)器定時(shí)器消息設(shè)置定時(shí)器UINTCWnd::

SetTimer(UINT

nIDEvent,UINT

uElapse,void*

lpfnTimer);說(shuō)明:nIDEvent:定時(shí)器標(biāo)識(shí),非0值,nElapse:時(shí)間間隔,單位為毫秒。lpfnTimer:聲明WM_TIMER消息處理函數(shù)的地址。如果此參數(shù)為NULL值,WM_TIMER消息將被植入應(yīng)用程序的消息隊(duì)列,并由CWnd對(duì)象操縱。11.6定時(shí)器消息刪除定時(shí)器BOOLCWnd::KillTimer(int

nIDEvent);說(shuō)明:nIDEv

溫馨提示

  • 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)論