freepeople性欧美熟妇, 色戒完整版无删减158分钟hd, 无码精品国产vα在线观看DVD, 丰满少妇伦精品无码专区在线观看,艾栗栗与纹身男宾馆3p50分钟,国产AV片在线观看,黑人与美女高潮,18岁女RAPPERDISSSUBS,国产手机在机看影片

正文內(nèi)容

windows是一個(gè)圖形操作系統(tǒng),其所有的圖形可視效果都是通-wenkub

2022-09-12 14:21:41 本頁面
 

【正文】 0, 50, 100, 100))。 ? 窗口原點(diǎn)是指邏輯窗口坐標(biāo)系的原點(diǎn)在視口(設(shè)備)坐標(biāo)系中的位置,視口原點(diǎn)是指設(shè)備實(shí)際輸出區(qū)域的原點(diǎn)。此外,對(duì)于某些映射模式,用戶還可以自定義窗口的長度和寬度,設(shè)置視圖區(qū)的物理范圍。 (point)。 (amp。 ASSERT_VALID(pDoc)。 // 設(shè)置十字光標(biāo) m_ptOrigin=point。 // 調(diào)整設(shè)備環(huán)境的屬性 (amp。 打開應(yīng)用程序項(xiàng)目 MyDraw, 修改單擊鼠標(biāo)和鼠標(biāo)移動(dòng)的消息處理函數(shù)。 例 修改例 513中的程序 MyDraw, 采用將設(shè)備坐標(biāo)轉(zhuǎn)換為邏輯坐標(biāo)的方法實(shí)現(xiàn)滾動(dòng)視圖的功能。 鼠標(biāo)消息的坐標(biāo)參數(shù)使用客戶區(qū)坐標(biāo) , CDC類繪圖成員函數(shù)使用與客戶區(qū)坐標(biāo)對(duì)應(yīng)的邏輯坐標(biāo) 。 ? 屏幕坐標(biāo)系以屏幕左上角為原點(diǎn) , 一些與整個(gè)屏幕有關(guān)的函數(shù)均采用屏幕坐標(biāo) , 如 GetCursorPos()、SetCursorPos()、 CreateWindow()、 MoveWindow()。 ?邏輯坐標(biāo)系是面向 DC的坐標(biāo)系 , 這種坐標(biāo)不考慮具體的設(shè)備類型 , 在繪圖時(shí) , Windows會(huì)根據(jù)當(dāng)前設(shè)置的映射模式將邏輯坐標(biāo)轉(zhuǎn)換為設(shè)備坐標(biāo) 。 當(dāng)在客戶區(qū)實(shí)時(shí)繪圖時(shí) , 需要利用 CClientDC類定義一個(gè)客戶區(qū)設(shè)備環(huán)境 。 CDC類對(duì) GDI的所有繪圖函數(shù)進(jìn)行了封裝 。MFC AppWizard應(yīng)用程序向?qū)?chuàng)建的 OnDraw()函數(shù)自動(dòng)支持所獲取的 DC。 ? 如果采用 SDK方法編程 , 獲取 DC的方法有兩種:在 WM_PAINT消息處理函數(shù)中通過調(diào)用 API函數(shù)BeginPaint()獲取設(shè)備環(huán)境 , 在消息處理函數(shù)返回前調(diào)用 API函數(shù) EndPaint()釋放設(shè)備環(huán)境 。所有的繪制操作必須通過設(shè)備環(huán)境進(jìn)行間接的處理, Windows自動(dòng)將設(shè)備環(huán)境所描述的結(jié)構(gòu)映射到相應(yīng)的物理設(shè)備上。 設(shè)備環(huán)境 ? 為了實(shí)現(xiàn)設(shè)備無關(guān)性,應(yīng)用程序的輸出不直接面向顯示器等物理設(shè)備,而是面向一個(gè)稱之為設(shè)備環(huán)境 DC(Device Context)的虛擬邏輯設(shè)備。 ? 所謂設(shè)備無關(guān)性 , 是指操作系統(tǒng)屏蔽了硬件設(shè)備的差異 , 使用戶編程時(shí)一般無需考慮設(shè)備的類型 ,如不同種類的顯示器或打印機(jī) 。 ? 編程時(shí)采用 MFC方法繪制圖形也很方便 , MFC對(duì)GDI函數(shù)和繪圖對(duì)象進(jìn)行了封裝 。 前面幾章已經(jīng)涉及到有關(guān)圖形處理的內(nèi)容 ,只是使用了 Windows系統(tǒng)默認(rèn)的圖形設(shè)備接口和設(shè)備環(huán)境 , 繪制的圖形沒有顏色 、 線型和字體的變化 。 Windows是一個(gè)圖形操作系統(tǒng) , 其所有的圖形可視效果都是通過繪制操作而完成的 。 本章主要學(xué)習(xí)內(nèi)容: ? 圖形處理的基本原理: – 圖形設(shè)備接口 – 設(shè)備環(huán)境 – GDI坐標(biāo)系 – 映射模式 ? 使用畫筆和畫刷繪制圖形 ? 文本與字體 ? 位圖、圖標(biāo)和光標(biāo) 圖形設(shè)備接口 ? Windows 提供了一個(gè)稱為圖形設(shè)備接口 GDI( Graphics Device Interface) 的抽象接口 。 ? 圖形設(shè)備接口 GDI管理 Windows應(yīng)用程序圖形的繪制 , 在應(yīng)用程序中 , 通過調(diào)用 GDI函數(shù)繪制不同尺寸 、 顏色 、 風(fēng)格的幾何圖形 、 文本和位圖 。 概述 Windows繪圖過程和設(shè)備無關(guān)性的實(shí)現(xiàn) : GDI處于設(shè)備驅(qū)動(dòng)程序的上一層 , 當(dāng)程序調(diào)用繪圖函數(shù)時(shí) ,GDI將繪圖命令傳送給當(dāng)前設(shè)備的驅(qū)動(dòng)程序 , 以調(diào)用驅(qū)動(dòng)程序提供的接口函數(shù) 。 ? 設(shè)備環(huán)境也稱設(shè)備描述表或設(shè)備上下文,它是由Windows管理的一個(gè)數(shù)據(jù)結(jié)構(gòu),它保存了繪圖操作中一些共同需要設(shè)置的信息,如當(dāng)前的畫筆、畫刷、字體和位圖等圖形對(duì)象及其屬性,以及顏色和背景等影響圖形輸出的繪圖模式。 ? 從根本上來說,設(shè)備環(huán)境 DC是一個(gè) Windows數(shù)據(jù)結(jié)構(gòu),該結(jié)構(gòu)存儲(chǔ)著程序向設(shè)備輸出時(shí)所需要的信息,應(yīng)用程序利用它定義圖形對(duì)象及其屬性,并實(shí)現(xiàn)應(yīng)用程序、設(shè)備驅(qū)動(dòng)程序和輸出設(shè)備之間繪圖命令的轉(zhuǎn)換。 在其他函數(shù)中通過調(diào)用 API函數(shù) GetDC()獲取設(shè)備環(huán)境 , 調(diào)用 API函數(shù) ReleaseDC()釋放設(shè)備環(huán)境 。 ? MFC的 DC類包括 CDC、 CPaintDC、 CClientDC、CWindowDC 和 CMetaFileDC 等 , 其中 CDC 類是MFC設(shè)備環(huán)境類的基類 , 其它的 MFC設(shè)備環(huán)境類都是 CDC的派生類 。 ? CPaintDC類是 OnPaint()函數(shù)使用的設(shè)備環(huán)境類 , 它代表一個(gè)窗口的繪圖畫面 。 ? CWindowDC類代表了整個(gè)程序窗口設(shè)備環(huán)境 , 可以在整個(gè)窗口區(qū)域繪圖 。 ?設(shè)備坐標(biāo)系是面向物理設(shè)備的坐標(biāo)系 , 這種坐標(biāo)以像素或設(shè)備所能表示的最小長度單位為單位 , X軸方向向右 , Y軸方向向下 。彈出式菜單使用的也是屏幕坐標(biāo) 。 屏幕坐標(biāo)系、窗口坐標(biāo)系和客戶區(qū)坐標(biāo)系 坐標(biāo)之間的相互轉(zhuǎn)換 ? 編程時(shí),有時(shí)需要根據(jù)當(dāng)前的具體情況進(jìn)行三種設(shè)備坐標(biāo)之間或與邏輯坐標(biāo)的相互轉(zhuǎn)換。 Windows鼠標(biāo)位置使用設(shè)備坐標(biāo)系,以客戶區(qū)窗口原點(diǎn)作為基準(zhǔn),而在 OnDraw()函數(shù)中使用邏輯坐標(biāo)。 void CMyDrawView::OnLButtonDown( UINT nFlags, CPoint point) { // TODO: Add your message handler code here . . . CClientDC dc(this)。point)。 m_bDragging=TRUE。 CClientDC dc(this)。point)。 m_ptOrigin=point。 ? Windows定義了 8種映射模式: MM_TEXT、MM_LOMETRIC、 MM_HIMETRIC、 MM_LOE NGLISH、 MM_HIENGLISH、 MM_TWIPS、 MM _ISOTROPIC、 MM_ANISOTROPIC ? 映射模式使得程序員可不必考慮輸出設(shè)備的具體設(shè)備坐標(biāo)系,而在一個(gè)統(tǒng)一的邏輯坐標(biāo)系中進(jìn)行圖形的繪制。 ? 除了映射模式,窗口和視口也是決定一個(gè)點(diǎn)的邏輯坐標(biāo)如何轉(zhuǎn)換為設(shè)備坐標(biāo)的一個(gè)因素。 ( 2) pDCSetMapMode(MM_TEXT)。 pDCSetViewportOrg(50,50)。 pDCSetWindowOrg(50, 50)。 ?直接設(shè)置 COLORREF數(shù)據(jù)不太方便 , Windows提供了 RGB宏用于設(shè)置顏色 , 將其中的紅 、 綠 、 藍(lán)分量值轉(zhuǎn)換為 COLORREF類型的顏色數(shù)據(jù): RGB(byRed, byGreen, byBlue) 其中參數(shù) byRed、 byGreen和 byBlue分別表示紅 、 綠 、 藍(lán)分量值 ( 范圍 0到 255) 。 // 背景色為灰色 pDCSetTextColor(RGB(0,0,255))。 畫筆和畫刷 GDI對(duì)象 ? Windows GDI提供了一些繪圖對(duì)象 , 程序通過這些 GDI對(duì)象設(shè)置繪圖的工具和風(fēng)格 , 這里的對(duì)象是指 Windows數(shù)據(jù)結(jié)構(gòu) , 而不是 C++類的對(duì)象 。 CDC類提供了成員函數(shù) SelectObject()選擇用戶自己創(chuàng)建的 GDI對(duì)象 , 該函數(shù)有多種重載形式 , 可以選擇用戶已定制好的畫筆 、 畫刷 、 字體和位圖等不同類型的 GDI對(duì)象 。 CBitmap* SelectObject(CBitmap* pBitmap)。 1. 創(chuàng)建畫筆 創(chuàng)建畫筆最簡單的方法是調(diào)用 CPen類的一個(gè)帶參數(shù)的構(gòu)造函數(shù)來構(gòu)造一個(gè) CPen類畫筆對(duì)象 , 以下代碼創(chuàng)建了一個(gè)紅色虛線畫筆: CPen PenNew (PS_DASH, 1, RGB(255, 0, 0))。 當(dāng)畫筆對(duì)象的聲明與創(chuàng)建不在同一個(gè)地方時(shí) (如需要多次改變畫筆 )只有采用這種方法 。PenNew)。 // 刪除底層的 GDI對(duì)象 3. 還原畫筆 在 OnDraw()函數(shù)中添加如下所示的代碼: CPen *pPenOld, PenNew。 例 編寫一個(gè) SDI應(yīng)用程序,繪制不同風(fēng)格、寬度和顏色的直線。PenNew)。 pDCSelectObject(pPenOld)。 pDCTextOut(260,10,用不同寬度的畫筆繪圖 )。PenNew)。 pDCSelectObject(pPenOld)。 COLORREF rgbPenClr[]={RGB(255,0,0),RGB(0,255,0), RGB(0,0,255),RGB(255,255,0),RGB(255,0,255), RGB(0,255,255),RGB(192,192,192)}。 i++) // 用不同顏色的畫筆繪圖 { CPen *pPenNew=new CPen(PS_SOLID,2,rgbPenClr[i])。 pDCLineTo(600,40+20*i)。 與畫筆一樣 , 也可以利用 MFC畫刷類 CBrush創(chuàng)建自己的畫刷 , 用于填充圖形的繪制 。 // 創(chuàng)建陰影畫刷 CBrush brush3(amp。 ? 如下代碼創(chuàng)建了一個(gè)填充色為紅色 、 圖案為垂直相交陰影線的畫刷: CBrush BrushNew。 BOOL CUseBrushDlg::OnInitDialog() { . . . . . . // TODO: Add extra initialization here (RGB(0,0,255))。 HBRUSH CUseBrushDlg::OnCtlColor(CDC* pDC, CWnd* pWnd, UINT nCtlColor) { //HBRUSH hbr = CDialog::OnCtlColor(pDC, pWnd, nCtlColor)。 ? 通過調(diào)用成員函數(shù) CDC::SelectStockObject()可以選擇一個(gè)堆對(duì)象繪圖工具,以下代碼將堆畫筆和堆畫刷作為當(dāng)前的繪圖工具: pPenOld=(CPen*) pDCSelectStockObject(NULL_PEN)。 // 設(shè)置堆畫刷對(duì)象 pBrhOld= pDCSelectObject(amp。 CBrush *pBrhOld, BrhNew。 // 使用堆畫刷對(duì)象 (100,100,300,300)。 (LTGRAY_BRUSH)。 (pPenOld)。 ? GDI為提供了繪制基本圖形的成員函數(shù) , 這些函數(shù)封裝在 MFC的 CDC類中 。 PolyBezier 根據(jù)兩個(gè)端點(diǎn)和兩個(gè)控制點(diǎn)繪制貝濟(jì)埃 ( Bezier) 曲線 。 利用 MFC AppWizard建立一個(gè) SDI應(yīng)用程序 ,在 OnDraw()函數(shù)中添加如下程序代碼: void CMyGraphView::OnDraw(CDC* pDC) { CMyGraphDoc* pDoc = GetDocument()。xPos+=10) pDCSetPixel(xPos,30,RGB(0,0,0))。 POINT polybpt[4]={{150,160},{220,60},{300,180}, {330,20}}。 // 使用淺灰色堆畫刷 pDCRoundRect(400,30,550,100,20,20)。 // 繪制弦形 POINT polygpt[5]={{450,200},{
點(diǎn)擊復(fù)制文檔內(nèi)容
教學(xué)課件相關(guān)推薦
文庫吧 www.dybbs8.com
備案圖片鄂ICP備17016276號(hào)-1