CClientDC CDC CPaintDC CWindowDC 的區別

一 CClientDC程序員

      CClientDC 派生於CDC 類算法

       客戶區設備上下文,其矩形區域爲窗口整個客戶區,客戶區的左上角的座標爲(0,0),與特定的窗口相關聯, 其構造函數中包含有GetDC(); 析構函數中包含有ReleaseDC();數組

      因此調用時直接使用,在調用完後也不用ReleaeDC();安全

二 CPaintDCapp

       至關於SDK 的BeginPaint() 和 EndPaint()  響應WM_PAINT 消息,進行窗口無效區的重繪,它的構造函數中包含BeginPaint(HWND hwnd,LPPAINTSTRUCT lpStruct) 得到ide

      重繪區的設備上下文,在析構函數調用EndPaint() 釋放設備上下文,因此在窗口發送WM_PAINT消息重繪時必須用CPaintDC, CPaintDC 還有一個做用是在重繪完後,從消息函數

      隊列中消除WM_PAINT ,不然窗口會一直重繪,所以CPaintDC 只能在WM_PAINT 消息響應函數OnPaint() 中使用。工具

三  CWindowDC字體

      得到整個屏幕區域(客戶區和非客戶區),容許在顯示器的任意位置繪圖 ,構造函數調用GetWindowDC() 得到相關聯的窗口的上下文,經過它可在窗口的任意位置繪圖,這種DC同WM_NCPAINT 消息一塊兒發送。spa

四 CDC

     基類,封裝了SDK 下對設備上下文的操做

     CDC類成員

數據成員

m_hDC CDC對象使用的輸出設備上下文
m_hAttribDC

CDC對象使用的輸出屬性上下文

構造函數

CDC 構造一個CDC對象


初始化

CreateDC 爲指定設備建立設備上下文
CreateIC 爲指定設備建立信息上下文。這提供了一種不建立設備上下文即獲取有關設備信息的快速方式
CreateCompatibleDC 建立內存設備上下文,與另外一個設備上下文匹配。能夠用它在內存中準備圖像
DeleteDC 刪除CDC對象對應的Windows設備上下文
FromHandle 給定設備上下文句柄時,返回指向CDC對象的指針。若是CDC對象未附加到句柄,則建立並附加一個臨時CDC對象
DeleteTempMap 由CWinApp空閒時間句柄調用,刪除FromHandle建立的臨時CDC對象。同時分離設備上下文
Attach 把Windows設備上下文附加到這個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 保存設備上下文當前狀態
RestoreDC 恢復SaveDC保存的設備上下文之前狀態
ResetDC 更新m_hAttribDC設備上下文
GetDeviceCaps 獲取有關給定顯示設備功能的指定類型指定設備信息
IsPrinting 肯定正在使用的設備上下文是否用於打印


安全型選擇幫助器

GetBrushOrg 獲取當前畫刷的起點
SetBrushOrg 指定選入設備上下文的下一個畫刷的起點
EnumObjects 枚舉設備上下文中有效的筆和畫刷


顏色和顏色調色板函數

SelectObject 選擇筆等GDI繪圖對象
SelectStockObject 選擇Windows提供的預約義的一個筆、畫刷或字體

 繪圖工具函數

GetNearestColor 獲取與給定設備能顯示的指定邏輯顏色最接近的邏輯色
SelectPalette 選擇邏輯調色板
RealizePalette 把當前邏輯調色板中的調色板入口映射到系統調色板
UpdateColors 經過客戶區當前顏色在像素基礎上與系統調色板的匹配,更新設備上下文的客戶區
GetHalftoneBrush 獲取半色調畫刷

繪圖屬性函數

GetBkColor 獲取當前背景色
SetBkColor 設置當前背景色
GetBkMode 獲取背景模式
SetBkMode 設置背景模式
GetPolyFillMode 獲取當前多邊形填充模式
SetPolyFillMode 設置多邊形填充模式
GetROP2 獲取當前繪圖模式
SetROP2 設置當前繪圖模式
GetStretchBltMode 獲取當前位圖拉伸模式
SetStretchBltMode 設置位圖拉伸模式
GetTextColor 獲取當前文本顏色
SetTextColor 設置文本顏色
GetColorAdjustment 獲取用於設備上下文的顏色調整值
SetColorAdjustment 使用指定值設置設備上下文的顏色調整值


映射函數

GetMapMode 獲取當前映射模式
SetMapMode 設置當前映射模式
GetViewportOrg 獲取視區起點的X和Y座標
SetViewportOrg 設置視區起點
OffsetViewportOrg 相對於當前視區起點座標修改視區起點
GetViewportExt 獲取視區X和Y範圍
SetViewportExt 設置視區X和Y範圍
ScaleViewportExt 相對於當前值修改視區範圍
GetWindowOrg 獲取參應窗口起點的X和Y座標
SetWindowOrg 設置設備上下文的窗口起點
OffsetWindowOrg 相對於當前窗口起點的座標修改窗口起點
GetWindowExt 獲取對應窗口的X和Y座標
SetWindowExt 設置對應窗口的X和Y座標
ScaleWindowExt 相對於當前值修改窗口範圍


座標函數

DPtoHIMETRIC 設備單位轉換爲HIMETRIC單位
LPtoHIMETRIC 邏輯單位轉換爲HIMETRIC單位
DPtoLP 設備單位轉換爲邏輯單位
LPtoDP 邏輯單位轉換爲設備單位
HIMETRICtoDPHIMETRIC 單位轉換爲設備單位
HIMETRICtoLPHIMETRIC 單位轉換爲邏輯單位


區域函數

FillRgn 用指定畫刷填充指定區域
FrameRgn 用畫刷在指定區域周圍繪製邊線
InvertRgn 反轉區域中的顏色
PaintRgn 用選取的畫刷填充區域


剪切函數

SetBoundsRect 控制指定設備上下文綁定的矩形信息的累計
GetBoundsRect 返回到設備上下文當前累計的綁定矩形
GetClipBox 獲取當前剪切邊界周圍最緊綁定矩形的維數
SelectClipRgn 使用指定模式合併給定區域和當前剪切區域
ExcludeClipRect 建立包含現有剪切區域減掉指定矩形的一個新剪切區域
ExcludeUpdateRgn 經過從剪切區域排除窗口中的更新區域,防止在窗口的無效區域中繪圖
IntersectClipRect 經過構成當前區域和矩形的交集建立一個新的剪切區域
OffsetClipRgn 移動給定設備的剪切區域
PtVisible 肯定給定點是否在剪切區域內
RectVisible 肯定給定矩形的任何部分是否在剪切區域內


線輸出函數

GetCurrentPosition 獲取筆的當前位置(以邏輯座標表示)
MoveTo 移動當前位置
LineTo 從當前位置到一點畫直線,但不包括那個點
Arc 畫一段橢圓弧
ArcTo 畫一段橢圓弧。除了更新當前位置之外,這個函數與Arc相似
AngleArc 畫一條線段和圓弧,把當前位置移到圓弧終點
GetArcDirection 對設備上下文返回當前圓弧方向
SetArcDirection 設備圓弧和矩形函數要用到的繪圖方向
PolyDraw 畫一組線段和Bezier樣條。這個函數更新當前位置Polyline畫一組與指定點鏈接的線段
PolyPolyline 畫多組相連線段。這個函數不使用也不更新當前位置
PolylineTo 畫一條或多條直線,並把當前位置移到最後一條直線的終點
PolyBezier 畫一條或多條Bezier樣條。不使用也不更新當前位置
PolyBezierTo 畫一條或多條Bezier樣條,並把當前位置移到最後一條Bezier樣條的終點


簡單繪圖函數

FillRect 用指定畫刷填充給定矩形
FrameRect 在矩形周圍繪製邊界
InvertRect 反轉矩形內容
DrawIcon 繪製圖標
DrawDragRect 拖拽矩形時擦除並重繪它
FillSolidRect 用實顏色填充矩形
Draw3Drect 繪製三維矩形
DrawEdge 繪製矩形邊
DrawFrameControl 繪製幀控件
DrawState 顯示圖像並應用可視化效果來表示一個狀態


橢圓和多邊形函數

Chord 繪製橢圓弧(橢圓和一條線段相交圍成的閉合圖形)
DrawFocusRect 繪製用於表示焦點的風格的矩形
Ellipse 繪製橢圓
Pie 繪製餅形圖
Polygon 繪製多邊形,包含由線段鏈接的一個或多個點(頂點)
PolyPolygon 建立使用當前多邊形填充模式的兩個或多個多邊形,多邊形能夠相互分開或疊加
Polyline 繪製多邊形,包含鏈接指定點的一組線段
Rectangle 使用當前筆繪製矩形,用當前畫刷填充
RoundRect 使用當前筆繪製圓角矩形,用當前畫刷填充


位圖函數

PatBlt 建立位特徵
BitBlt 從指定設備上下文拷貝位圖
StretchBlt 把位圖由源矩形和設備移動到目標矩形,必要時拉伸或壓縮位圖以適合目標矩形的維數
GetPixel 獲取指定點像素的RGB顏色值
SetPixel 設置指定點像素爲最接近指定色的近似值
SetPixelV 設置指定點座標爲最接近指定色的近似值。SetPixelV比SetPixel快,緣由是它不用返回實際繪製點的顏色值
FloodFill 用當前畫刷填充區域
ExtFloodFill 用當前畫刷填充區域。比FloodFill成員函數提供更多靈活性
MaskBlt 使用給定屏蔽和光柵操做對源和目標位圖合併顏色數據
PlgBlt 從源設備上下文的指定矩形到給定設備上下文中指定平行多邊形,執行顏色數據位的位塊傳遞


文本函數

TextOut 用當前選取字體在指定位置寫字符串
ExtTextOut 用當前選取字體在矩形區域寫字符串
TabbedTextOut 在指定位置寫字符串,製表符擴展爲製表符中止位置數組中指定值
DrawText 在指定矩形內繪製格式化文本
GetTextExtent 使用當前字體在屬性設備上下文上計算文本行的寬度和高度,肯定維數
GetOutputTextExtent 使用當前字體在輸出設備上下文上計算文本行的寬度和高度,肯定維數
GetTabbedTextExtent 使用當前字體在屬性設備上下文上計算字符串的寬度和高度
GetOutputTabbedTextExtent 使用當前字體在輸出設備上下文上計算字符串的寬度和高度
GrayString 在給定位置繪製暗(灰色)文本
GetTextAlign 獲取文本對齊標記
SetTextAlign 設置文本對齊標記
GetTextFace 以空終止字符串形式把當前字體字樣名拷貝到緩衝區
GetTextMetrics 從屬性設備上下文爲當前字體獲取度量
GetOutputTextMetrics 從輸出設備上下文爲當前字體獲取度量
SetTextJustification 把空格添加到字符串的中斷字符
GetTextCharacterExtra 對字符間空格數量獲取當前設置
SetTextCharacterExtra 設置字符間空格數量


字體函數

GetFontData 從比例字體文件獲取字體度量信息。獲取的信息經過指定字體文件與返回信息長度的偏移量標識
GetKerningPairs 獲取指定設備上下文中當前選取的字體字符實對
GetOutlineTextMetrics 獲取用於TrueType字體的字體度量信息
GetGlyphOutline 獲取用於當前字體中外線字符串的外線曲線或位圖
GetCharABCWidths 從當前字體獲取給定範圍相繼字符以邏輯單位計數的寬度
GetCharWidth 從當前字體獲取給定範圍相繼字符的分數寬度
GetOutputCharWidth 從使用輸出設備上下文的當前字體獲取相繼字符組中各個字符的寬度
SetMapperFlags 改變字體映射表在從邏輯字體到物理字符映射時使用的算法
GetAspectRatioFilter 獲取當前長寬比過濾器的設置


打印機跳離函數

QueryAbort 對打印應用調用AbortPro回滾函數,詢問打印是否應終止
Escape 容許應用訪問不能經過GDI直接使用的特殊設備的功能。同時容許訪問Windows跳離函數。應用調用的Escape調用經翻譯傳送到設備驅動程序
DrawEscape 訪問經過圖形設備接口(GDI)不能直接使用的視頻顯示器的繪圖功能
StartDoc 通告設備驅動程序開始一項新打印做業
StartPage 通告設備驅動程序開始新頁
EndPage 通告設備驅動程序頁結束
SetAbortProc 若是打印做業必須終止,設置Windows調用的由程序員提供的回滾函數
AbortDoc 終止當前打印任務,擦除自上次調用StartDoc成員函數以來應用寫入設備的任何內容
EndDoc 結束由StartDoc成員函數啓動的打印做業


滾動函數

ScrollDC 水平和垂直滾動位矩形


元文件函數

PlayMetaFile 在給定設備上播放指定元文件類型。加強版本的PlayMetaFile顯示以加強格式元文件保存的圖片。元文件能夠播聽任意次數
AddMetaFileComment 從緩衝區把註釋拷貝到指定加強格式元文件


路徑函數

AbortPath 關閉並拒絕設備上下文中任何路徑
BeginPath 打開設備上下文中一個路徑括號
CloseFigure 關閉路徑中一個打開的圖表
EndPath 關閉一個路徑括號,並把括號定義的路徑選擇到設備上下文
FillPath 關閉當前路徑中任何打開的圖表,並用當前畫刷和多邊形填充模式填充路徑內部
FlattenPath 變形選取到當前設備上下文路徑中的任何曲線,把曲線變成一系列直線
GetMiterLimit 返回用於設備上下文的限制
GetPath 獲取定義直線端點和從選擇到設備上下文路徑中找到的曲線控制點的座標
SelectClipPath 對設備上下文選擇當前路徑做爲剪切區域,經過使用指定模式合併新區域和任何現有剪切區域
SetMiterLimit 設備用於設備上下文的鏈接長度限制
StrokeAndFillPath 關閉路徑中任何打開的圖表,使用當前筆點路徑外線,使用當前畫刷填充它內部
StrokePath 使用當前筆描繪指定路徑
WidenPath 若是路徑使用過了當前選取到設備上下文中的筆點,從新定義當前路徑爲要畫的區域
相關文章
相關標籤/搜索