簡(jiǎn)介 CDC類(lèi)中,常用的一些成員函數。
CDC
CObject
└CDC
CDC類(lèi)定義的是設備上下文對象的類(lèi)。
CDC對象提供處理顯示器或打印機等設備上下文的成員函數,以及處理與窗口客戶(hù)區對應的顯示上下文的成員。
通過(guò)CDC對象的成員函數進(jìn)行所有的繪圖。
類(lèi)對設備上下文操作提供了成員函數,處理繪圖工具。安全型圖形設備接口(GDI)對象收集,以及處理顏色和調色板。
它還為獲取和設置繪圖屬性、映射,處理視點(diǎn)、窗口擴展、轉換坐標,處理區域、剪貼、繪制直線(xiàn)及繪制簡(jiǎn)單橢圓和多邊形等形狀提供了成員函數。
另外還為繪制文本、處理字體,使用打印機跳轉,滾動(dòng)和播放元文件提供成員函數。
使用CDC對象時(shí)要構造它,然后調用與它平等的、使用設備上下文的Windows函數的成員函數。
Windows 95下所有屏幕坐標限制在16位以?xún)?。因此向CDC成員函數傳遞的int必須在-32768至32767之間。
為了特定用途,Microsoft基本類(lèi)庫提供了幾個(gè)CDC派生類(lèi)。 CPaintDC 包括BeginPaint和EndPaint調用。
CClientDC 管理窗口用戶(hù)區對應的顯示上下文。
CWindowDC 管理與整個(gè)窗口對應的顯示上下文,包括它的結構和控件。
CMetaFileDC 與帶元文件的設備上下文對應。
CDC包含m_hDC和m_hAttribDC兩個(gè)設備上下文,它們在CDC對象創(chuàng )建時(shí)參考同一個(gè)設備。
CDC指導所有對m_hDC的輸出GDI調用以及對m_hAttribDC的大部分屬性GDI調用(GetTextColor是屬性調用的例子,而SetTextColor是一個(gè)輸出調用)。
例如框架使用這兩個(gè)設備上下文實(shí)現CMetaFileDC對象,在從物理設備讀取屬性期間向元文件發(fā)送輸出。
打印預覽以相同風(fēng)格在框架中實(shí)現。還可以以相似方法在特殊應用代碼中使用這兩個(gè)設備上下文。
可能多次需要來(lái)自m_hDC和m_hAttribDC設備上下文的文本度量信息。
以下幾對函數提供了這項功能:
使用m_hAttribDC 使用m_hDC
GetTextExtent GetOutputTextExtent
GetTabbedTextExtent GetOutputTabbedTextExtent
GetTextMetrics GetOutputTextMetrics
GetCharWidth GetOutputCharWidth
有關(guān)CDC的更多信息,請參閱聯(lián)機文檔“Visual C++程序員指南”中的“設備上下文”。
#include <afxwin.h>
請參閱:CPaintDC, CClientDC, CWindowDC, CMetaFileDC
編輯本段CDC類(lèi)成員
數據成員 m_hDC CDC對象使用的輸出設備上下文
m_hAttribDC CDC對象使用的輸出屬性上下文
構造函數 CDC 構造一個(gè)CDC對象
初始化 CreateDC 為指定設備創(chuàng )建設備上下文
CreateIC 為指定設備創(chuàng )建信息上下文。這提供了一種不創(chuàng )建設備上下文即獲取有關(guān)設備信息的快速方式
CreateCompatibleDC 創(chuàng )建內存設備上下文,與另一個(gè)設備上下文匹配??梢杂盟趦却嬷袦蕚鋱D像
DeleteDC 刪除CDC對象對應的Windows設備上下文
FromHandle 給定設備上下文句柄時(shí),返回指向CDC對象的指針。如果CDC對象未附加到句柄,則創(chuàng )建并附加一個(gè)臨時(shí)CDC對象
DeleteTempMap 由CWinApp空閑時(shí)間句柄調用,刪除FromHandle創(chuàng )建的臨時(shí)CDC對象。同時(shí)分離設備上下文
Attach 把Windows設備上下文附加到這個(gè)CDC對象
Detach 從CDC對象分離Windows設備上下文.
SetAttribDC 設置屬性設備上下文m_hAttribDC
SetOutputDC 設置輸出設備上下文m_hDC
ReleaseAttribDC 釋放屬性設備上下文m_hAttribDC
ReleaseOutputDC 釋放輸出設備上下文m_hDC
GetCurrentBitmap 返回指向當前選擇的CBitmap對象的指針
GetCurrentBrush 返回指向當前選擇的CBrush對象的指針
GetCurrentFont 返回指向當前選擇的CFont對象的指針
GetCurrentPalette 返回指向當前選擇的CPalette對象的指針
GetCurrentPen 返回指向當前選擇的CPen對象的指針
GetWindow 返回顯示設備上下文對應的窗口
設備上下文函數 GetSafeHdc 返回輸出設備上下文m_hDC
SaveDC 保存設備上下文當前狀態(tài)
RestoreDC 恢復SaveDC保存的設備上下文以前狀態(tài)
ResetDC 更新m_hAttribDC設備上下文
GetDeviceCaps 獲取有關(guān)給定顯示設備功能的指定類(lèi)型指定設備信息
IsPrinting 確定正在使用的設備上下文是否用于打印
安全型選擇幫助器 GetBrushOrg 獲取當前畫(huà)刷的起點(diǎn)
SetBrushOrg 指定選入設備上下文的下一個(gè)畫(huà)刷的起點(diǎn)
EnumObjects 枚舉設備上下文中有效的筆和畫(huà)刷
顏色和顏色調色板函數 SelectObject 選擇筆等GDI繪圖對象
SelectStockObject 選擇Windows提供的預定義的一個(gè)筆、畫(huà)刷或字體
繪圖工具函數 GetNearestColor 獲取與給定設備能顯示的指定邏輯顏色最接近的邏輯色
SelectPalette 選擇邏輯調色板
RealizePalette 把當前邏輯調色板中的調色板入口映射到系統調色板
UpdateColors 通過(guò)客戶(hù)區當前顏色在像素基礎上與系統調色板的匹配,更新設備上下文的客戶(hù)區
GetHalftoneBrush 獲取半色調畫(huà)刷
繪圖屬性函數 GetBkColor 獲取當前背景色
SetBkColor 設置當前背景色
GetBkMode 獲取背景模式
SetBkMode 設置背景模式
GetPolyFillMode 獲取當前多邊形填充模式
SetPolyFillMode 設置多邊形填充模式
GetROP2 獲取當前繪圖模式
SetROP2 設置當前繪圖模式
GetStretchBltMode 獲取當前位圖拉伸模式
SetStretchBltMode 設置位圖拉伸模式
GetTextColor 獲取當前文本顏色
SetTextColor 設置文本顏色
GetColorAdjustment 獲取用于設備上下文的顏色調整值
SetColorAdjustment 使用指定值設置設備上下文的顏色調整值
映射函數 GetMapMode 獲取當前映射模式
SetMapMode 設置當前映射模式
GetViewportOrg 獲取視區起點(diǎn)的X和Y坐標
SetViewportOrg 設置視區起點(diǎn)
OffsetViewportOrg 相對于當前視區起點(diǎn)坐標修改視區起點(diǎn)
GetViewportExt 獲取視區X和Y范圍
SetViewportExt 設置視區X和Y范圍
ScaleViewportExt 相對于當前值修改視區范圍
GetWindowOrg 獲取參應窗口起點(diǎn)的X和Y坐標
SetWindowOrg 設置設備上下文的窗口起點(diǎn)
OffsetWindowOrg 相對于當前窗口起點(diǎn)的坐標修改窗口起點(diǎn)
GetWindowExt 獲取對應窗口的X和Y坐標
SetWindowExt 設置對應窗口的X和Y坐標
ScaleWindowExt 相對于當前值修改窗口范圍
坐標函數 DPtoHIMETRIC 設備單位轉換為HIMETRIC單位
LPtoHIMETRIC 邏輯單位轉換為HIMETRIC單位
DPtoLP 設備單位轉換為邏輯單位
LPtoDP 邏輯單位轉換為設備單位
HIMETRICtoDPHIMETRIC 單位轉換為設備單位
HIMETRICtoLPHIMETRIC 單位轉換為邏輯單位
區域函數 FillRgn 用指定畫(huà)刷填充指定區域
FrameRgn 用畫(huà)刷在指定區域周?chē)L制邊線(xiàn)
InvertRgn 反轉區域中的顏色
PaintRgn 用選取的畫(huà)刷填充區域
剪切函數 SetBoundsRect 控制指定設備上下文綁定的矩形信息的累計
GetBoundsRect 返回到設備上下文當前累計的綁定矩形
GetClipBox 獲取當前剪切邊界周?chē)罹o綁定矩形的維數
SelectClipRgn 使用指定模式合并給定區域和當前剪切區域
ExcludeClipRect 創(chuàng )建包含現有剪切區域減掉指定矩形的一個(gè)新剪切區域
ExcludeUpdateRgn 通過(guò)從剪切區域排除窗口中的更新區域,防止在窗口的無(wú)效區域中繪圖
IntersectClipRect 通過(guò)構成當前區域和矩形的交集創(chuàng )建一個(gè)新的剪切區域
OffsetClipRgn 移動(dòng)給定設備的剪切區域
PtVisible 確定給定點(diǎn)是否在剪切區域內
RectVisible 確定給定矩形的任何部分是否在剪切區域內
線(xiàn)輸出函數 GetCurrentPosition 獲取筆的當前位置(以邏輯坐標表示)
MoveTo 移動(dòng)當前位置
LineTo 從當前位置到一點(diǎn)畫(huà)直線(xiàn),但不包括那個(gè)點(diǎn)
Arc 畫(huà)一段橢圓弧
ArcTo 畫(huà)一段橢圓弧。除了更新當前位置以外,這個(gè)函數與Arc類(lèi)似
AngleArc 畫(huà)一條線(xiàn)段和圓弧,把當前位置移到圓弧終點(diǎn)
GetArcDirection 對設備上下文返回當前圓弧方向
SetArcDirection 設備圓弧和矩形函數要用到的繪圖方向
PolyDraw 畫(huà)一組線(xiàn)段和Bezier樣條。這個(gè)函數更新當前位置Polyline畫(huà)一組與指定點(diǎn)連接的線(xiàn)段
PolyPolyline 畫(huà)多組相連線(xiàn)段。這個(gè)函數不使用也不更新當前位置
PolylineTo 畫(huà)一條或多條直線(xiàn),并把當前位置移到最后一條直線(xiàn)的終點(diǎn)
PolyBezier 畫(huà)一條或多條Bezier樣條。不使用也不更新當前位置
PolyBezierTo 畫(huà)一條或多條Bezier樣條,并把當前位置移到最后一條Bezier樣條的終點(diǎn)
簡(jiǎn)單繪圖函數 FillRect 用指定畫(huà)刷填充給定矩形
FrameRect 在矩形周?chē)L制邊界
InvertRect 反轉矩形內容
DrawIcon 繪制圖標
DrawDragRect 拖拽矩形時(shí)擦除并重繪它
FillSolidRect 用實(shí)顏色填充矩形
Draw3Drect 繪制三維矩形
DrawEdge 繪制矩形邊
DrawFrameControl 繪制幀控件
DrawState 顯示圖像并應用可視化效果來(lái)表示一個(gè)狀態(tài)
橢圓和多邊形函數 Chord 繪制橢圓?。E圓和一條線(xiàn)段相交圍成的閉合圖形)
DrawFocusRect 繪制用于表示焦點(diǎn)的風(fēng)格的矩形
Ellipse 繪制橢圓
Pie 繪制餅形圖
Polygon 繪制多邊形,包含由線(xiàn)段連接的一個(gè)或多個(gè)點(diǎn)(頂點(diǎn))
PolyPolygon 創(chuàng )建使用當前多邊形填充模式的兩個(gè)或多個(gè)多邊形,多邊形可以相互分開(kāi)或疊加
Polyline 繪制多邊形,包含連接指定點(diǎn)的一組線(xiàn)段
Rectangle 使用當前筆繪制矩形,用當前畫(huà)刷填充
RoundRect 使用當前筆繪制圓角矩形,用當前畫(huà)刷填充
位圖函數 PatBlt 創(chuàng )建位特征
BitBlt 從指定設備上下文拷貝位圖
StretchBlt 把位圖由源矩形和設備移動(dòng)到目標矩形,必要時(shí)拉伸或壓縮位圖以適合目標矩形的維數
GetPixel 獲取指定點(diǎn)像素的RGB顏色值
SetPixel 設置指定點(diǎn)像素為最接近指定色的近似值
SetPixelV 設置指定點(diǎn)坐標為最接近指定色的近似值。SetPixelV比SetPixel快,原因是它不用返回實(shí)際繪制點(diǎn)的顏色值
FloodFill 用當前畫(huà)刷填充區域
ExtFloodFill 用當前畫(huà)刷填充區域。比FloodFill成員函數提供更多靈活性
MaskBlt 使用給定屏蔽和光柵操作對源和目標位圖合并顏色數據
PlgBlt 從源設備上下文的指定矩形到給定設備上下文中指定平行多邊形,執行顏色數據位的位塊傳遞
文本函數 TextOut 用當前選取字體在指定位置寫(xiě)字符串
ExtTextOut 用當前選取字體在矩形區域寫(xiě)字符串
TabbedTextOut 在指定位置寫(xiě)字符串,制表符擴展為制表符停止位置數組中指定值
DrawText 在指定矩形內繪制格式化文本
GetTextExtent 使用當前字體在屬性設備上下文上計算文本行的寬度和高度,確定維數
GetOutputTextExtent 使用當前字體在輸出設備上下文上計算文本行的寬度和高度,確定維數
GetTabbedTextExtent 使用當前字體在屬性設備上下文上計算字符串的寬度和高度
GetOutputTabbedTextExtent 使用當前字體在輸出設備上下文上計算字符串的寬度和高度
GrayString 在給定位置繪制暗(灰色)文本
GetTextAlign 獲取文本對齊標記
SetTextAlign 設置文本對齊標記
GetTextFace 以空終止字符串形式把當前字體字樣名拷貝到緩沖區
GetTextMetrics 從屬性設備上下文為當前字體獲取度量
GetOutputTextMetrics 從輸出設備上下文為當前字體獲取度量
SetTextJustification 把空格添加到字符串的中斷字符
GetTextCharacterExtra 對字符間空格數量獲取當前設置
SetTextCharacterExtra 設置字符間空格數量
字體函數 GetFontData 從比例字體文件獲取字體度量信息。獲取的信息通過(guò)指定字體文件與返回信息長(cháng)度的偏移量標識
GetKerningPairs 獲取指定設備上下文中當前選取的字體字符實(shí)對
GetOutlineTextMetrics 獲取用于TrueType字體的字體度量信息
GetGlyphOutline 獲取用于當前字體中外線(xiàn)字符串的外線(xiàn)曲線(xiàn)或位圖
GetCharABCWidths 從當前字體獲取給定范圍相繼字符以邏輯單位計數的寬度
GetCharWidth 從當前字體獲取給定范圍相繼字符的分數寬度
GetOutputCharWidth 從使用輸出設備上下文的當前字體獲取相繼字符組中各個(gè)字符的寬度
SetMapperFlags 改變字體映射表在從邏輯字體到物理字符映射時(shí)使用的算法
GetAspectRatioFilter 獲取當前長(cháng)寬比過(guò)濾器的設置
打印機跳離函數 QueryAbort 對打印應用調用AbortPro回滾函數,詢(xún)問(wèn)打印是否應終止
Escape 允許應用訪(fǎng)問(wèn)不能通過(guò)GDI直接使用的特殊設備的功能。同時(shí)允許訪(fǎng)問(wèn)Windows跳離函數。應用調用的Escape調用經(jīng)翻譯傳送到設備驅動(dòng)程序
DrawEscape 訪(fǎng)問(wèn)通過(guò)圖形設備接口(GDI)不能直接使用的視頻顯示器的繪圖功能
StartDoc 通告設備驅動(dòng)程序開(kāi)始一項新打印作業(yè)
StartPage 通告設備驅動(dòng)程序開(kāi)始新頁(yè)
EndPage 通告設備驅動(dòng)程序頁(yè)結束
SetAbortProc 如果打印作業(yè)必須終止,設置Windows調用的由程序員提供的回滾函數
AbortDoc 終止當前打印任務(wù),擦除自上次調用StartDoc成員函數以來(lái)應用寫(xiě)入設備的任何內容
EndDoc 結束由StartDoc成員函數啟動(dòng)的打印作業(yè)
滾動(dòng)函數 ScrollDC 水平和垂直滾動(dòng)位矩形
元文件函數 PlayMetaFile 在給定設備上播放指定元文件類(lèi)型。增強版本的PlayMetaFile顯示以增強格式元文件保存的圖片。元文件可以播放任意次數
AddMetaFileComment 從緩沖區把注釋拷貝到指定增強格式元文件
路徑函數 AbortPath 關(guān)閉并拒絕設備上下文中任何路徑
BeginPath 打開(kāi)設備上下文中一個(gè)路徑括號
CloseFigure 關(guān)閉路徑中一個(gè)打開(kāi)的圖表
EndPath 關(guān)閉一個(gè)路徑括號,并把括號定義的路徑選擇到設備上下文
FillPath 關(guān)閉當前路徑中任何打開(kāi)的圖表,并用當前畫(huà)刷和多邊形填充模式填充路徑內部
FlattenPath 變形選取到當前設備上下文路徑中的任何曲線(xiàn),把曲線(xiàn)變成一系列直線(xiàn)
GetMiterLimit 返回用于設備上下文的限制
GetPath 獲取定義直線(xiàn)端點(diǎn)和從選擇到設備上下文路徑中找到的曲線(xiàn)控制點(diǎn)的坐標
SelectClipPath 對設備上下文選擇當前路徑作為剪切區域,通過(guò)使用指定模式合并新區域和任何現有剪切區域
SetMiterLimit 設備用于設備上下文的連接長(cháng)度限制
StrokeAndFillPath 關(guān)閉路徑中任何打開(kāi)的圖表,使用當前筆點(diǎn)路徑外線(xiàn),使用當前畫(huà)刷填充它內部
StrokePath 使用當前筆描繪指定路徑
WidenPath 如果路徑使用過(guò)了當前選取到設備上下文中的筆點(diǎn),重新定義當前路徑為要畫(huà)的區域