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