資源描述:
《Windows人機(jī)交互程序設(shè)計(jì)教學(xué)課件-第07課 繪圖工具.ppt》由會(huì)員上傳分享,免費(fèi)在線閱讀,更多相關(guān)內(nèi)容在教育資源-天天文庫(kù)。
1、第07課繪圖工具北方軟件學(xué)院NorthSoftwareInstituteWindows程序設(shè)計(jì)大綱知識(shí)回顧消息Windows繪圖機(jī)制基礎(chǔ)知識(shí)色彩原理繪圖消息繪圖函數(shù)繪圖工具畫筆畫刷NorthSoftwareInstitute知識(shí)回顧NorthSoftwareInstitute知識(shí)回顧-消息機(jī)制NorthSoftwareInstitute鼠標(biāo)左鍵按下消息**WM_LBUTTONDOWN參數(shù)功能:lParam存放當(dāng)前光標(biāo)的在窗口中的位置。wParam存放一個(gè)標(biāo)志,該標(biāo)志注明了當(dāng)鼠標(biāo)左鍵按下的時(shí)候還有什么鍵同時(shí)被按
2、下。NorthSoftwareInstitute如何獲去鼠標(biāo)按下時(shí)光標(biāo)的位置坐標(biāo)xPos=LOWORD(lParam);yPos=HIWORD(lParam);高位字節(jié)yPos低位字節(jié)xPosNorthSoftwareInstituteIntfwKeys=wParam;//keyflagsfwKey包含如下值:MK_CONTROL表示:鼠標(biāo)左鍵按下時(shí),系統(tǒng)ctrl鍵同時(shí)也被按下。MK_SHIFT表示:鼠標(biāo)左鍵按下時(shí),系統(tǒng)地shift鍵同時(shí)也被按下。MK_LBUTTON……MK_MBUTTON……MK_RBUT
3、TON……例如:if(fwKeys&MK_SHIFT==MK_SHIFT){。。。。。。}NorthSoftwareInstitute鍵盤消息WM_KEYDOWNWM_KEYUPWM_CHARNorthSoftwareInstitute*WM_KEYDOWN功能:當(dāng)鍵盤中的一個(gè)非系統(tǒng)鍵被按下的時(shí)候產(chǎn)生該消息。該消息發(fā)送給當(dāng)前鍵盤聚焦的窗口。參數(shù):wParam虛擬鍵值(一般為ASCII碼)lParam鍵盤掃描碼等信息NorthSoftwareInstitute*WM_CHAR功能:當(dāng)WM_KEYDOWN被Tra
4、nslateMessage函數(shù)翻譯后產(chǎn)生該消息。參數(shù):wParam:存放字符碼(ASCII)lParam:存放鍵盤掃描碼等。NorthSoftwareInstituteWindows繪圖知識(shí)NorthSoftwareInstitute基礎(chǔ)知識(shí)常用的顯示設(shè)備有哪些?顯示器繪圖儀打印機(jī)……NorthSoftwareInstitute基礎(chǔ)知識(shí)圖像是如何顯示在屏幕上的?NorthSoftwareInstitute基礎(chǔ)知識(shí)圖像是如何顯示在屏幕上的?圖像是由點(diǎn)組成的Windows圖像是成千上萬(wàn)的點(diǎn)像素組成。NorthSo
5、ftwareInstitute基礎(chǔ)知識(shí)色彩是怎么構(gòu)成?三色素構(gòu)成彩色紅、綠、藍(lán)RGB(255,0,0)一個(gè)像素點(diǎn)NorthSoftwareInstitute程序控制顯示的原理應(yīng)用程序操作系統(tǒng)顯示器驅(qū)動(dòng)程序打印機(jī)驅(qū)動(dòng)程序NorthSoftwareInstitute設(shè)備環(huán)境句柄*HDC設(shè)備環(huán)境句柄HDC是數(shù)據(jù)類型HDC代表了程序當(dāng)前顯示設(shè)備HDC的用途:在程序中代表顯示設(shè)備在繪圖時(shí),必須要指定一個(gè)設(shè)備環(huán)境(DC),用來(lái)將某個(gè)窗口或設(shè)備與設(shè)備環(huán)境類的句柄指針關(guān)聯(lián)起來(lái),所有的繪圖操作都與該句柄有關(guān)。HDC的獲得Beg
6、inPaintEndPaintNorthSoftwareInstituteBeginPaintHDCBeginPaint(HWNDhwnd,LPPAINTSTRUCTlpPaint);功能:返回hWnd窗口客戶區(qū)的hdc句柄NorthSoftwareInstituteNorthSoftwareInstitute在程序中的位置caseWM_PAINT:hdc=BeginPaint(hWnd,&ps);RECTrt;GetClientRect(hWnd,&rt);DrawText(hdc,szHello,strl
7、en(szHello),&rt,DT_CENTER);EndPaint(hWnd,&ps);break;NorthSoftwareInstituteNorthSoftwareInstitute繪圖消息WM_PAINT所有的繪圖操作都在該消息下產(chǎn)生窗口刷新的時(shí)候產(chǎn)生該消息如:窗口尺寸發(fā)生變化、窗口被其他窗口覆蓋函數(shù):InvalidateRect執(zhí)行的時(shí)候產(chǎn)生該消息使用例子:InvalidateRect(hWnd,NULL,TRUE);NorthSoftwareInstitute常用畫圖工具NorthSoftwa
8、reInstitute畫線函數(shù)BOOLMoveToEx(HDChdc,intX,//起始xposintY,//起始yposLPPOINTlpPoint//光標(biāo)的舊位置);功能:確定直線的起始坐標(biāo)BOOLLineTo(HDChdc,intnXEnd,intnYEnd);功能:確定直線的結(jié)束坐標(biāo),并畫線例:畫一條直線MoveToEx(hdc,100,50,NULL);LineTo(hdc,200,300