版權(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ì)自己和他人造成任何形式的傷害或損失。
最新文檔
- 2024智能安防監(jiān)控系統(tǒng)集成合同
- 二零二五年度建筑工程門窗供應(yīng)與安裝合同20篇
- 二零二五年度建筑消防設(shè)施安全檢測(cè)與維修服務(wù)協(xié)議2篇
- 2024版文化石采購(gòu)合同范本
- 保安服務(wù)合同的培訓(xùn)
- 2025拍賣出讓的合同范本
- 二零二五年度瓷磚店面售后服務(wù)協(xié)議范本2篇
- 2024有機(jī)肥批發(fā)銷售協(xié)議模板版B版
- 二零二五年度旅游安全員聘用合同范本3篇
- 二零二五年度個(gè)人消費(fèi)抵押擔(dān)保合同示范文本3篇
- 2024年馬克思主義基本原理知識(shí)競(jìng)賽試題70題(附答案)
- 2024年中國(guó)機(jī)織濾布市場(chǎng)調(diào)查研究報(bào)告
- 貴州業(yè)主大會(huì)議事規(guī)則示范文本模板
- 2024年內(nèi)容創(chuàng)作者與平臺(tái)合作協(xié)議2篇
- 酒店客房打掃培訓(xùn)
- 2024-2025學(xué)年高考英語(yǔ)語(yǔ)法第一輪復(fù)習(xí):定語(yǔ)從句(講義)(原卷版+解析)
- 保險(xiǎn)理賠崗位招聘面試題與參考回答(某大型央企)2024年
- 第10課《我們不亂扔》(教學(xué)設(shè)計(jì))-部編版道德與法治二年級(jí)上冊(cè)
- 瑞士萬(wàn)通831KF卡爾費(fèi)休水分測(cè)定儀干貨-庫(kù)侖法
- 第14章第1節(jié)熱機(jī)-課件(共21張課件)-人教版初中物理九年級(jí)全一冊(cè).課件
- 2025屆浙江省樂(lè)清市知臨中學(xué)高一數(shù)學(xué)第一學(xué)期期末檢測(cè)試題含解析
評(píng)論
0/150
提交評(píng)論