鼠標(biāo)程序設(shè)計(jì).ppt_第1頁(yè)
鼠標(biāo)程序設(shè)計(jì).ppt_第2頁(yè)
鼠標(biāo)程序設(shè)計(jì).ppt_第3頁(yè)
鼠標(biāo)程序設(shè)計(jì).ppt_第4頁(yè)
鼠標(biāo)程序設(shè)計(jì).ppt_第5頁(yè)
已閱讀5頁(yè),還剩36頁(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)介

1、1,第6章 鼠標(biāo)程序設(shè)計(jì),本章主要內(nèi)容: 鼠標(biāo)消息處理 使用鼠標(biāo)畫點(diǎn) 使用鼠標(biāo)畫線,2,6.1 鼠標(biāo)消息處理 鼠標(biāo)是重要的輸入設(shè)備。在Windows圖形操作系統(tǒng)中,鼠標(biāo)發(fā)揮了強(qiáng)大的威力,因而對(duì)它的控制與使用越來(lái)越受到用戶的重視。Windows提供了統(tǒng)一的鼠標(biāo)編程接口,該接口是對(duì)通過(guò)鼠標(biāo)消息實(shí)現(xiàn)的。當(dāng)用戶移動(dòng)鼠標(biāo),按下或釋放鼠標(biāo)按鍵時(shí),都會(huì)觸發(fā)鼠標(biāo)消息。根據(jù)鼠標(biāo)所在位置的不同,鼠標(biāo)消息可以分為客戶區(qū)鼠標(biāo)消息和非客戶區(qū)鼠標(biāo)消息。,3,(1) 客戶區(qū)鼠標(biāo)消息 當(dāng)用戶移動(dòng)鼠標(biāo)通過(guò)應(yīng)用程序窗口的客戶區(qū)時(shí),應(yīng)用程序會(huì)接收一連串WM_MOUSEMOVE消息,這些消息不僅告訴應(yīng)用程序鼠標(biāo)在移動(dòng),還告訴應(yīng)用程序

2、觸發(fā)消息時(shí)鼠標(biāo)的位置。 當(dāng)鼠標(biāo)移動(dòng)到應(yīng)用程序窗口的客戶區(qū)外面時(shí),應(yīng)用程序則停止接收客戶區(qū)鼠標(biāo)消息,大部分應(yīng)用程序不處理非客戶區(qū)鼠標(biāo)消息。,4,常用客戶區(qū)鼠標(biāo)消息 鼠標(biāo)移動(dòng) WM_MOUSEMOVE 在客戶區(qū)移動(dòng) 鼠標(biāo)左鍵 WM_LBUTTONUP 左鍵釋放 WM_LBUTTONDOWN 左鍵 按下 WM_LIBUTTONDBCLK 鼠標(biāo)雙擊 鼠標(biāo)右鍵 WM_RBUTTONUP 右鍵釋放 WM_RBUTTONDOWN 鼠標(biāo)右鍵 按下 WM_RBUTTONDBCLK 鼠標(biāo)右鍵雙擊,2,5,(2) 非客戶區(qū)鼠標(biāo)消息 在應(yīng)用程序窗口中,除了客戶區(qū)以外的部分都是非客戶區(qū),當(dāng)鼠標(biāo)通過(guò)非客戶區(qū)時(shí),就會(huì)觸發(fā)與

3、客戶區(qū)鼠標(biāo)消息類似的非客戶區(qū)鼠標(biāo)消息,大部分應(yīng)用程序不處理非客戶區(qū)鼠標(biāo)消息。 MFC把客戶區(qū)鼠標(biāo)消息的處理函數(shù)封裝在CView類中,這些函數(shù)都是虛函數(shù),其中常用的客戶區(qū)鼠標(biāo)消息處理函數(shù)如下: afx_msg void OnMouseMove(UINT nFlag, CPoint point); 鼠標(biāo)消息處理函數(shù)原型中的nFlag表示按下的虛擬鍵,point 表示當(dāng)前鼠標(biāo)坐標(biāo)。,6,(3) 加處理客戶區(qū)鼠標(biāo)消息方法的函數(shù),4,7,(4) 編輯函數(shù),5,8,修改函數(shù)如下:,6,9,鼠標(biāo)和鍵盤組合的標(biāo)志,point.x, point.y 為鼠標(biāo)光標(biāo)的坐標(biāo),7,MK_SHIFT 表示 shift+左鍵

4、,10,(5) 編譯,運(yùn)行 在客戶區(qū)鼠標(biāo)左鍵 按下時(shí):, 處理鼠標(biāo)左鍵消息代碼的位置:(三處),8,11, 在頭文件DrawView.h中,9,函數(shù)說(shuō)明,12, 在文件DrawView.cpp中,消息映射宏,10,13, 在文件DrawView.cpp中定義函數(shù)體,11,14,Shift 鍵+鼠標(biāo)組合,也可以 MK_CONTROL+鼠標(biāo)組合,12,15,Shift 鍵與鼠標(biāo)組合,13,16,6.2 使用鼠標(biāo)畫點(diǎn),加成員變量,在Classview 擊右鍵,14,17,雙擊看定義,15,18,雙擊看初始化,16,19,初始化,17,20,置畫點(diǎn)壯態(tài),18,21,置畫點(diǎn)壯態(tài),置色,19,22,20,

5、23,6.3 使用鼠標(biāo)畫線 處理的鼠標(biāo)消息是: WM_LBUTTONDOWN 單擊左鍵 WM_MOUSEMOVE 移動(dòng)左鍵 WM_LBUTTONDOWN 單擊左鍵 (1). 在DrawView 中添加兩個(gè)標(biāo)注線段起點(diǎn)坐標(biāo)的整形變量及畫線步數(shù)的整型變量。 m_nStartX x坐標(biāo) m_nStartY y坐標(biāo) m_nStep; 0 起點(diǎn), 1 終點(diǎn),21,24,右鍵,22,25,23,3變量,26,為變量賦初值:,雙擊,24,27,25,初值,28,修改成員函數(shù):,26,29,27,30,編譯運(yùn)行:,28,也可改變筆的屬性:,31,定模式及風(fēng)格,29,32,編譯運(yùn)行:,橡皮線工作原理,30,33,加 WM_MOUSEMOVE 消息處理成員函數(shù):,31,34,編輯函數(shù):,32,35,添加記錄終點(diǎn)坐標(biāo)的成員變量:

溫馨提示

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