資源描述:
《人機交互程序設(shè)計教學(xué)課件第6課windows輸入消息》由會員上傳分享,免費在線閱讀,更多相關(guān)內(nèi)容在教育資源-天天文庫。
1、第6課Windows—輸入消息北方軟件學(xué)院NorthSoftwareInstituteWindows人機交互程序設(shè)計本節(jié)課主要內(nèi)容知識回顧消息機制窗口創(chuàng)建過程鼠標(biāo)消息鍵盤消息窗口相關(guān)API知識回顧問題1:HWND和MSG是什么數(shù)據(jù)類型?問題2:創(chuàng)建窗口的程序流程是什么?問題3:什么是窗口過程處理函數(shù)?問題4:消息結(jié)構(gòu)中有哪些數(shù)據(jù)成員?問題1:HWND和MSG是什么數(shù)據(jù)類型?HWND:窗口句柄MSG:結(jié)構(gòu)體(用來表示消息)typedefstructtagMSG{HWNDhwnd;//接收該消息的窗口句柄UINTmessage;//消息的名稱WPARAMwParam;//附
2、帶參數(shù)LPARAMlParam;//附帶參數(shù)DWORDtime;//消息的傳遞時間POINTpt;//當(dāng)前光標(biāo)位置}MSG;問題2:創(chuàng)建窗口的程序流程是什么?1.設(shè)計一個窗口類;2.注冊窗口類;3.創(chuàng)建窗口;4.顯示及更新窗口;5.*進入消息循環(huán)(擴展)。WNDCLASSRegisterClassExCreateWindowShowWindowUpdateWindowwhile(GetMessage(&msg,NULL,0,0)){TranslateMessage(&msg);DispatchMessage(&msg);}問題3:什么是窗口過程處理函數(shù)?用于處理發(fā)送給窗
3、口的消息。一個Windows應(yīng)用程序的主要代碼部分就集中在窗口過程處理函數(shù)中。LRESULTCALLBACKWndProc(HWNDhWnd,UINTmessage,WPARAMwParam,LPARAMlParam)問題4:消息結(jié)構(gòu)中有哪些數(shù)據(jù)成員?LRESULTCALLBACKWndProc(HWNDhWnd,UINTmessage,WPARAMwParam,LPARAMlParam)HWNDhWnd消息所屬窗口的句柄UINTmessage消息名稱WPARAMwParam消息的wParam參數(shù)LPARAMlParam消息的lParam參數(shù)想想消息結(jié)構(gòu)?消息機制**(
4、重點知識)鼠標(biāo)消息鼠標(biāo)消息-鼠標(biāo)的消息有哪些?WM_LBUTTONDOWNWM_LBUTTONUPWM_LBUTTONDBLCLKWM_RBUTTONDOWNWM_RBUTTONUPWM_RBUTTONDBLCLKWM_MBUTTONDOWNWM_MOUSEMOVEWM_MOUSEWHEELWM_NCLBUTTONDOWNWM_NCLBUTTONUP等等請查閱MSDN鼠標(biāo)消息-左鍵按下消息WM_LBUTTONDOWN參數(shù)功能:lParam 存放當(dāng)前光標(biāo)的在窗口中的位置。wParam存放一個標(biāo)志,該標(biāo)志注明了當(dāng)鼠標(biāo)左鍵按下的時候還有什么鍵同時被按下。鼠標(biāo)消息-左鍵按下消息
5、如何獲去鼠標(biāo)按下時光標(biāo)的位置坐標(biāo)?xPos=LOWORD(lParam);yPos=HIWORD(lParam);高位字節(jié)yPos低位字節(jié)xPos鼠標(biāo)消息-左鍵按下消息fwKey=wParam;//keyflagsfwKey按位與的值如下:MK_CONTROL:鼠標(biāo)左鍵按下時,系統(tǒng)ctrl鍵同時也被按下。#defineMK_LBUTTON0x0001#defineMK_RBUTTON0x0002#defineMK_SHIFT0x0004#defineMK_CONTROL0x0008#defineMK_MBUTTON0x0010例如:wParam=9(0x1001)MK_
6、CONTROL=8(0x1000)if(fwKey&MK_CONTROL){……}鍵盤消息鍵盤的常用操作鍵盤的常用操作有哪些?輸入字符輸入控制命令……這類的消息有:WM_KEYDOWNWM_KEYUPWM_CHAR……鍵盤消息-鍵盤按下消息WM_KEYDOWN功能:當(dāng)鍵盤中的一個非系統(tǒng)鍵被按下的時候產(chǎn)生該消息。該消息發(fā)送給當(dāng)前鍵盤聚焦的窗口。參數(shù)功能:wParam虛擬鍵值(一般為ASCII碼)lParam鍵盤掃描碼等信息作業(yè)(鍵盤掃描碼?);鍵盤消息-獲得字符消息WM_CHAR功能:當(dāng)WM_KEYDOWN被TranslateMessage函數(shù)翻譯后產(chǎn)生該消息。參數(shù):wP
7、aram:存放字符碼(ASCII)lParam:存放鍵盤掃描碼等。窗口相關(guān)APIBOOLSetWindowText(HWNDhWnd,LPCTSTRlpString);BOOLGetWindowText(HWNDhWnd,LPCTSTRlpString,intnMaxCount);窗口相關(guān)API-使用舉例SetWindowText(hWnd,”helloWord”);charszBuf[512];memset(szBuf,NULL,512);GetWindowText(hWnd,szBuf,512);案例:鼠標(biāo)鍵盤消息實驗1)在窗口的標(biāo)題