資源描述:
《人機(jī)交互程序設(shè)計教學(xué)課件第8課繪圖工具》由會員上傳分享,免費(fèi)在線閱讀,更多相關(guān)內(nèi)容在教育資源-天天文庫。
1、北方軟件學(xué)院NorthSoftwareInstituteWindows人機(jī)交互程序設(shè)計第8課繪圖工具本節(jié)課主要內(nèi)容知識回顧繪圖工具畫筆畫刷Windows繪圖知識圖像是如何顯示在屏幕上的?圖像是如何顯示在屏幕上的?圖像是由點(diǎn)組成的Windows圖像是成千上萬的點(diǎn)像素組成。色彩是怎么構(gòu)成*三色素構(gòu)成彩色紅、綠、藍(lán)一個像素點(diǎn)程序控制顯示的原理*應(yīng)用程序操作系統(tǒng)顯示器驅(qū)動程序打印機(jī)驅(qū)動程序設(shè)備環(huán)境句柄*HDC設(shè)備環(huán)境句柄HDC是數(shù)據(jù)類型HDC代表了程序當(dāng)前顯示設(shè)備HDC的用途:在程序中代表顯示設(shè)備在繪圖時,必須要指定一個設(shè)備環(huán)境(DC),用來將某個窗口或設(shè)備與
2、設(shè)備環(huán)境類的句柄指針關(guān)聯(lián)起來,所有的繪圖操作都與該句柄有關(guān)。HDC的獲得BeginPaintEndPaintBeginPaintHDCBeginPaint(HWNDhwnd,LPPAINTSTRUCTlpPaint);功能:返回hWnd窗口客戶區(qū)的hdc句柄在程序中的位置繪圖消息WM_PAINT所有的繪圖操作都在該消息下產(chǎn)生窗口刷新的時候產(chǎn)生該消息如:窗口尺寸發(fā)生變化、窗口被其他窗口覆蓋函數(shù):InvalidateRect執(zhí)行的時候產(chǎn)生該消息使用例子:InvalidateRect(hWnd,NULL,TRUE);畫線*畫線函數(shù)BOOLMoveToEx(H
3、DChdc,intX,//起始xposintY,//起始yposLPPOINTlpPoint//光標(biāo)的舊位置);功能:確定直線的起始坐標(biāo)*畫線函數(shù)BOOLLineTo(HDChdc,intnXEnd,intnYEnd);功能:確定直線的結(jié)束坐標(biāo),并畫線例:畫一條直線MoveToEx(hdc,200,300,NULL);LineTo(hdc,200,600);常用畫圖工具畫筆如何繪畫彩色的線條?如何繪制粗一些的線條?如何繪制點(diǎn)劃線?需要使用工具畫筆畫筆創(chuàng)建函數(shù)*HPENCreatePen(intfnPenStyle,intnWidth,COLORREFc
4、rColor)功能:創(chuàng)建一個畫筆對象返回值:返回一個畫筆句柄。參數(shù)含義*fnPenStyle:畫筆的風(fēng)格,取值為:PS_SOLD,PS_DASH,PS_DOT,PS_DASHDOT等。nWidth:畫筆的粗細(xì)crColor:畫筆的顏色如何使用畫筆?*思考:我們在繪畫的時候如何使用筆?Windows編程中是通過函數(shù)SelectObject來選擇畫筆。HGDIOBJSelectObject(HDChdc,HGDIOBJhgdiobj);選擇函數(shù)說明*HGDIOBJSelectObject(HDChdc,HGDIOBJhgdiobj);功能:選擇繪圖對象的函
5、數(shù)參數(shù):hgdiobj:存放要選入的繪圖對象句柄。包括,hPen,hBrush,hBitmap,hFont等等返回值:返回未選擇前,系統(tǒng)當(dāng)前正在使用的圖形對象句柄。*繪畫函數(shù)代碼片斷HPENhPen=CreatePen(PS_SOLD,3,RGB(255,0,0));HPENhOldPen=(HPEN)SelectObject(hdc,hPen);MoveToEx(hdc,0,100,NULL);LineTo(hdc,500,100);SelectObject(hdc,hOldPen);DeleteObject(hPen);創(chuàng)建畫筆選入畫筆繪圖選出畫筆
6、刪除畫筆*矩形繪制BOOLRectangle(HDChdc,intnLeftRect,intnTopRect,intnRightRect,intnBottomRect);*繪制橢圓BOOLEllipse(HDChdc,intnLeftRect,intnTopRect,intnRightRect,intnBottomRect);如何給一個圖形上色?**用畫刷*畫刷創(chuàng)建函數(shù)HBRUSHCreateSolidBrush(COLORREFcrColor);功能:創(chuàng)建一個指定顏色的畫刷句柄*應(yīng)用舉例HBRUSHhBrush=CreateSolidBrush(RG
7、B(255,0,255));HBRUSHhOldBrush=(HBRUSH)SelectObject(hdc,hBrush);Rectangle(hdc,50,50,400,400);SelectObject(hdc,hOldBrush);DeleteObject(hBrush);創(chuàng)建畫刷選入畫刷繪圖選出畫刷刪除畫刷課后作業(yè)繪圖試驗:要求:編寫程序?qū)崿F(xiàn)25*25的五子棋棋盤;文本顯示*繪制文字的API函數(shù)1BOOLTextOut(HDChdc,intx,inty,LPSTRpszText,intnSize);功能:在窗口的指定的位置顯示文字內(nèi)容。返回值
8、:如果函數(shù)執(zhí)行成功返回TRUE,如果函數(shù)執(zhí)行失敗返回FALSE.*參數(shù)內(nèi)容HDChdc設(shè)備環(huán)境