檢視原始碼 wxDC (wx v2.4.3)
wxDC
是一個 "裝置上下文"
,可以在其上繪製圖形和文字。
它旨在表示不同的輸出裝置,並提供一個通用的抽象 API,以便在任何裝置上繪圖。
wxWidgets 提供了一個基於現代繪圖後端的替代繪圖 API,例如 GDI+、CoreGraphics、Cairo 和 Direct2D。請參閱 wxGraphicsContext
、wxGraphicsRenderer
和相關類別。還有一個 wxGCDC
,透過在 wxGraphicsContext
之上提供 wxDC
API 來連結這些 API。
wxDC
是一個抽象基底類別,無法直接建立。請使用 wxPaintDC
、wxClientDC
、wxWindowDC
、wxScreenDC
、wxMemoryDC
或 wxPrinterDC
(在 wx 中未實作)。請注意,與視窗相關聯的裝置上下文(即 wxClientDC
、wxWindowDC
和 wxPaintDC
)預設會使用視窗的字型和顏色(從 wxWidgets 2.9.0 開始),但其他裝置上下文類別會使用系統預設值,因此您必須在使用之前始終設定適當的字型和顏色。
除了下面文件中說明的版本的方法之外,還有一些版本接受單一 {X,Y} 參數,而不是兩個 wxCoord 參數,或是接受 {X,Y} 和 {Width,Height} 參數,而不是四個 wxCoord 參數。
從 wxWidgets 2.9.0 開始,整個 wxDC
程式碼已重新組織。所有平台相依的程式碼(實際上是所有繪圖程式碼)都已移至從通用 wxDCImpl 類別衍生的後端類別。使用者可見的類別,例如 wxClientDC
和 wxPaintDC
,僅將所有呼叫轉發到後端實作。
裝置和邏輯單位
在 wxDC
上下文中,邏輯
單位和 裝置
單位之間存在區別。
裝置
單位是特定裝置的原生單位;例如,對於螢幕,裝置單位是 像素
。對於印表機,裝置單位由印表機的解析度定義(通常以 DPI:
每英吋點數表示)。
除非明確說明,否則所有 wxDC
函式都改用 邏輯
單位。邏輯單位是任意單位,使用目前的對應模式對應到裝置單位(請參閱 setMapMode/2
)。
這種機制允許重複使用相同的程式碼,將螢幕上的視窗列印在紙張上,例如。
支援透明度/Alpha 通道
一般來說,wxDC
方法不支援 Alpha 透明度,並且 wx_color()
的 Alpha 元件會被直接忽略,您需要使用 wxGraphicsContext
才能完全支援透明度。但是,有一些例外情況:首先,在 macOS 和 GTK+ 3 下,具有 Alpha 通道的所有顏色在所有正常的 wxDC 衍生類別中都受到支援,因為它們在內部使用 wxGraphicsContext
。其次,在所有平台上,wxSVGFileDC
(在 wx 中未實作)也完全支援 Alpha 通道。在這兩種情況下,從 wx_color()
建置的 wxPen
或 wxBrush
實例在描邊或填滿時會使用顏色的 Alpha 值。
支援轉換矩陣
在某些平台上(目前在 MSW、GTK+ 3、macOS 下),wxDC
支援將任意仿射轉換矩陣套用至其座標系統(自 3.1.1 起,wxGCDC
在所有連接埠中也支援此功能)。呼叫 CanUseTransformMatrix()
(在 wx 中未實作)以檢查是否可使用此支援,如果有的話,則呼叫 SetTransformMatrix()
(在 wx 中未實作)。如果轉換矩陣不受支援,SetTransformMatrix()
(在 wx 中未實作)始終只會傳回 false
,並且不會執行任何動作。
只有在啟用 wxUSE_DC_TRANSFORM_MATRIX
建置選項時,才能使用此功能。
請參閱
wxWidgets 文件:wxDC
摘要
函式
從來源 DC 複製到此 DC。
使用目前的背景筆刷清除裝置上下文。
這是一個為了方便而提供的多載成員函式。它與上述函式的區別僅在於它接受的引數。
銷毀目前的裁剪區域,使 DC 的任何部分都不會被裁剪。
使用目前的對應模式、使用者縮放比例、裝置原點和軸方向,將 裝置
X 座標轉換為邏輯座標。
使用目前的對應模式和使用者縮放比例,但忽略軸方向,將 裝置
X 座標轉換為相對邏輯座標。
使用目前的對應模式、使用者縮放比例、裝置原點和軸方向,將 裝置
Y 座標轉換為邏輯座標。
使用目前的對應模式和使用者縮放比例,但忽略軸方向,將 裝置
Y 座標轉換為相對邏輯座標。
這是一個為了方便而提供的多載成員函式。它與上述函式的區別僅在於它接受的引數。
這是一個為了方便而提供的多載成員函式。它與上述函式的區別僅在於它接受的引數。
這是一個為了方便而提供的多載成員函式。它與上述函式的區別僅在於它接受的引數。
這是一個為了方便而提供的多載成員函式。它與上述函式的區別僅在於它接受的引數。
這是一個為了方便而提供的多載成員函式。它與上述函式的區別僅在於它接受的引數。
這是一個為了方便而提供的多載成員函式。它與上述函式的區別僅在於它接受的引數。
這是一個為了方便而提供的多載成員函式。它與上述函式的區別僅在於它接受的引數。
這是一個為了方便而提供的多載成員函式。它與上述函式的區別僅在於它接受的引數。
這是一個為了方便而提供的多載成員函式。它與上述函式的區別僅在於它接受的引數。
這是一個為了方便而提供的多載成員函式。它與上述函式的區別僅在於它接受的引數。
使用大小為 n
的點陣列繪製線條,並新增選用的偏移座標。
這是一個為了方便而提供的多載成員函式。它與上述函式的區別僅在於它接受的引數。
使用大小為 n
的點陣列繪製填滿的多邊形,並新增選用的偏移座標。
這是一個為了方便而提供的多載成員函式。它與上述函式的區別僅在於它接受的引數。
這是一個為了方便而提供的多載成員函式。它與上述函式的區別僅在於它接受的引數。
這是一個為了方便而提供的多載成員函式。它與上述函式的區別僅在於它接受的引數。
這是一個為了方便而提供的多載成員函式。它與上述函式的區別僅在於它接受的引數。
這是一個為了方便而提供的多載成員函式。它與上述函式的區別僅在於它接受的引數。
這是一個為了方便而提供的多載成員函式。它與上述函式的區別僅在於它接受的引數。
結束文件(僅在輸出到印表機時相關)。
結束文件頁面(僅在輸出到印表機時相關)。
這是一個為了方便而提供的多載成員函式。它與上述函式的區別僅在於它接受的引數。
取得用於繪製背景的筆刷。
傳回目前的背景模式:wxPENSTYLE_SOLID
或 wxPENSTYLE_TRANSPARENT
。
取得目前的筆刷。
取得目前設定字型的字元高度。
取得目前設定字型的平均字元寬度。
取得圍繞目前裁剪區域的矩形。如果未設定裁剪區域,此函式會傳回裝置上下文的範圍。@remarks 裁剪區域以邏輯座標表示。@param x 如果非 <span class='literal'>NULL</span>,則填入裁剪區域左上角的邏輯水平座標,如果函式傳回 true,則填入 0,否則填入。@param y 如果非 <span class='literal'>NULL</span>,則填入裁剪區域左上角的邏輯垂直座標,如果函式傳回 true,則填入 0,否則填入。@param width 如果非 <span class='literal'>NULL</span>,則填入裁剪區域的寬度(如果函式傳回 true)或裝置上下文的寬度(否則填入)。@param height 如果非 <span class='literal'>NULL</span>,則填入裁剪區域的高度(如果函式傳回 true)或裝置上下文的高度(否則填入)。
取得目前的字型。
取得裝置上下文的目前版面配置方向。
取得目前的邏輯函式。
取得裝置上下文的目前對應模式。
使用目前選取的字型取得字串的尺寸。
使用目前選取的字型取得字串的尺寸。
使用 text
開頭到 text
的對應字元之間的寬度來填入 widths
陣列。
取得目前的畫筆。
在 colour
中取得指定位置的顏色。
傳回裝置的每英吋像素解析度。
這是一個為了方便而提供的多載成員函式。它與上述函式的區別僅在於它接受的引數。
這是一個為了方便而提供的多載成員函式。它與上述函式的區別僅在於它接受的引數。
取得目前的文字背景顏色。
這是一個為了方便而提供的多載成員函式。它與上述函式的區別僅在於它接受的引數。
使用目前選取的字型取得字串的尺寸。
取得目前的文字前景顏色。
取得目前的使用者縮放比例。
使用徑向漸層填滿 rect
指定的區域,從圓心上的 initialColour
開始,並淡化到圓外的 destColour
。
使用徑向漸層填滿 rect
指定的區域,從圓心上的 initialColour
開始,並淡化到圓外的 destColour
。
使用線性漸層填滿 rect
指定的區域,從 initialColour
開始,並最終淡化到 destColour
。
如果 DC 可以使用,則傳回 true。
使用目前的對應模式、使用者縮放比例、裝置原點和軸方向,將邏輯 X 座標轉換為裝置座標。
使用目前的對應模式和使用者縮放比例,但忽略軸方向,將邏輯 X 座標轉換為相對裝置座標。
使用目前的對應模式、使用者縮放比例、裝置原點和軸向,將邏輯 Y 坐標轉換為裝置坐標。
使用目前的對應模式和使用者縮放比例,但忽略軸向,將邏輯 Y 坐標轉換為相對裝置坐標。
取得目前為止繪圖指令中使用的最大水平範圍。
取得目前為止繪圖指令中使用的最大垂直範圍。
取得目前為止繪圖指令中使用的最小水平範圍。
取得目前為止繪圖指令中使用的最小垂直範圍。
重置邊界框:呼叫此函式後,邊界框不會包含任何內容。
設定 x 和 y 軸的方向(即軸上從最低值到最高值的方向)。
設定 DC 目前的背景筆刷。
mode
可以是 wxPENSTYLE_SOLID
和 wxPENSTYLE_TRANSPARENT
之一。
設定 DC 目前的筆刷。
這是一個為了方便而提供的多載成員函式。它與上述函式的區別僅在於它接受的引數。
這是一個為了方便而提供的多載成員函式。它與上述函式的區別僅在於它接受的引數。
設定裝置原點(即縮放後以像素為單位的原點)。
設定 DC 目前的字型。
設定裝置內容的目前版面配置方向。
設定裝置內容的目前邏輯函式。
裝置內容的對應模式定義了用於將邏輯
單位轉換為裝置
單位的測量單位。
如果這是視窗 DC 或記憶體 DC,則將指定的調色盤指派給與 DC 相關聯的視窗或點陣圖。
設定 DC 目前的畫筆。
設定 DC 目前的文字背景顏色。
設定 DC 目前的文字前景顏色。
設定使用者縮放比例,對於需要「縮放」的應用程式很有用。
開始一個文件(僅在輸出到印表機時相關)。
開始一個文件頁面(僅在輸出到印表機時相關)。
類型
-type wxDC() :: wx:wx_object().
函式
-spec blit(This, Dest, Size, Source, Src, [Option]) -> boolean() when This :: wxDC(), Dest :: {X :: integer(), Y :: integer()}, Size :: {W :: integer(), H :: integer()}, Source :: wxDC(), Src :: {X :: integer(), Y :: integer()}, Option :: {rop, wx:wx_enum()} | {useMask, boolean()} | {srcPtMask, {X :: integer(), Y :: integer()}}.
從來源 DC 複製到此 DC。
使用此方法,您可以指定目的地坐標和要複製區域的大小,來源和目標 DC 的大小將相同。如果需要在複製時應用縮放,請使用 StretchBlit()
(未在 wx 中實作)。
請注意,來源 DC 坐標 xsrc
和 ysrc
是使用目前的來源 DC 坐標系統來解譯,也就是說,將它們轉換為實體(像素)坐標時,會考慮到縮放比例、原點位置和軸向。
備註:wxPostScriptDC
中的 blit/6
在 X 環境下有部分支援。
請參閱
-spec clear(This) -> ok when This :: wxDC().
使用目前的背景筆刷清除裝置上下文。
請注意,必須使用 setBackground/2
方法來設定 clear/1
所使用的筆刷,setBrush/2
所設定的用於填滿形狀的筆刷會被忽略。
如果沒有設定背景筆刷,則會使用實心白色筆刷來清除裝置內容。
這是一個為了方便而提供的多載成員函式。它與上述函式的區別僅在於它接受的引數。
-spec destroyClippingRegion(This) -> ok when This :: wxDC().
銷毀目前的裁剪區域,使 DC 的任何部分都不會被裁剪。
使用目前的對應模式、使用者縮放比例、裝置原點和軸方向,將 裝置
X 座標轉換為邏輯座標。
使用目前的對應模式和使用者縮放比例,但忽略軸方向,將 裝置
X 座標轉換為相對邏輯座標。
例如,使用此項來轉換寬度。
使用目前的對應模式、使用者縮放比例、裝置原點和軸方向,將 裝置
Y 座標轉換為邏輯座標。
使用目前的對應模式和使用者縮放比例,但忽略軸方向,將 裝置
Y 座標轉換為相對邏輯座標。
例如,使用此項來轉換高度。
-spec drawArc(This, PtStart, PtEnd, Centre) -> ok when This :: wxDC(), PtStart :: {X :: integer(), Y :: integer()}, PtEnd :: {X :: integer(), Y :: integer()}, Centre :: {X :: integer(), Y :: integer()}.
這是一個為了方便而提供的多載成員函式。它與上述函式的區別僅在於它接受的引數。
-spec drawBitmap(This, Bmp, Pt) -> ok when This :: wxDC(), Bmp :: wxBitmap:wxBitmap(), Pt :: {X :: integer(), Y :: integer()}.
-spec drawBitmap(This, Bmp, Pt, [Option]) -> ok when This :: wxDC(), Bmp :: wxBitmap:wxBitmap(), Pt :: {X :: integer(), Y :: integer()}, Option :: {useMask, boolean()}.
這是一個為了方便而提供的多載成員函式。它與上述函式的區別僅在於它接受的引數。
-spec drawCheckMark(This, Rect) -> ok when This :: wxDC(), Rect :: {X :: integer(), Y :: integer(), W :: integer(), H :: integer()}.
這是一個為了方便而提供的多載成員函式。它與上述函式的區別僅在於它接受的引數。
-spec drawCircle(This, Pt, Radius) -> ok when This :: wxDC(), Pt :: {X :: integer(), Y :: integer()}, Radius :: integer().
這是一個為了方便而提供的多載成員函式。它與上述函式的區別僅在於它接受的引數。
-spec drawEllipse(This, Rect) -> ok when This :: wxDC(), Rect :: {X :: integer(), Y :: integer(), W :: integer(), H :: integer()}.
這是一個為了方便而提供的多載成員函式。它與上述函式的區別僅在於它接受的引數。
-spec drawEllipse(This, Pt, Size) -> ok when This :: wxDC(), Pt :: {X :: integer(), Y :: integer()}, Size :: {W :: integer(), H :: integer()}.
這是一個為了方便而提供的多載成員函式。它與上述函式的區別僅在於它接受的引數。
-spec drawEllipticArc(This, Pt, Sz, Sa, Ea) -> ok when This :: wxDC(), Pt :: {X :: integer(), Y :: integer()}, Sz :: {W :: integer(), H :: integer()}, Sa :: number(), Ea :: number().
這是一個為了方便而提供的多載成員函式。它與上述函式的區別僅在於它接受的引數。
-spec drawIcon(This, Icon, Pt) -> ok when This :: wxDC(), Icon :: wxIcon:wxIcon(), Pt :: {X :: integer(), Y :: integer()}.
這是一個為了方便而提供的多載成員函式。它與上述函式的區別僅在於它接受的引數。
-spec drawLabel(This, Text, Rect, [Option]) -> ok when This :: wxDC(), Text :: unicode:chardata(), Rect :: {X :: integer(), Y :: integer(), W :: integer(), H :: integer()}, Option :: {alignment, integer()} | {indexAccel, integer()}.
這是一個為了方便而提供的多載成員函式。它與上述函式的區別僅在於它接受的引數。
-spec drawLine(This, Pt1, Pt2) -> ok when This :: wxDC(), Pt1 :: {X :: integer(), Y :: integer()}, Pt2 :: {X :: integer(), Y :: integer()}.
這是一個為了方便而提供的多載成員函式。它與上述函式的區別僅在於它接受的引數。
-spec drawLines(This, Points, [Option]) -> ok when This :: wxDC(), Points :: [{X :: integer(), Y :: integer()}], Option :: {xoffset, integer()} | {yoffset, integer()}.
使用大小為 n
的點陣列繪製線條,並新增選用的偏移座標。
目前的畫筆用於繪製線條。
這是一個為了方便而提供的多載成員函式。它與上述函式的區別僅在於它接受的引數。
-spec drawPolygon(This, Points, [Option]) -> ok when This :: wxDC(), Points :: [{X :: integer(), Y :: integer()}], Option :: {xoffset, integer()} | {yoffset, integer()} | {fillStyle, wx:wx_enum()}.
使用大小為 n
的點陣列繪製填滿的多邊形,並新增選用的偏移座標。
第一個和最後一個點會自動關閉。
最後一個引數指定填滿規則:wxODDEVEN_RULE
(預設值)或 wxWINDING_RULE
。
目前的畫筆用於繪製輪廓,而目前的筆刷用於填滿形狀。使用透明筆刷會抑制填滿。
-spec drawRectangle(This, Rect) -> ok when This :: wxDC(), Rect :: {X :: integer(), Y :: integer(), W :: integer(), H :: integer()}.
這是一個為了方便而提供的多載成員函式。它與上述函式的區別僅在於它接受的引數。
-spec drawRectangle(This, Pt, Sz) -> ok when This :: wxDC(), Pt :: {X :: integer(), Y :: integer()}, Sz :: {W :: integer(), H :: integer()}.
這是一個為了方便而提供的多載成員函式。它與上述函式的區別僅在於它接受的引數。
-spec drawRotatedText(This, Text, Point, Angle) -> ok when This :: wxDC(), Text :: unicode:chardata(), Point :: {X :: integer(), Y :: integer()}, Angle :: number().
這是一個為了方便而提供的多載成員函式。它與上述函式的區別僅在於它接受的引數。
-spec drawRoundedRectangle(This, Rect, Radius) -> ok when This :: wxDC(), Rect :: {X :: integer(), Y :: integer(), W :: integer(), H :: integer()}, Radius :: number().
這是一個為了方便而提供的多載成員函式。它與上述函式的區別僅在於它接受的引數。
-spec drawRoundedRectangle(This, Pt, Sz, Radius) -> ok when This :: wxDC(), Pt :: {X :: integer(), Y :: integer()}, Sz :: {W :: integer(), H :: integer()}, Radius :: number().
這是一個為了方便而提供的多載成員函式。它與上述函式的區別僅在於它接受的引數。
-spec drawText(This, Text, Pt) -> ok when This :: wxDC(), Text :: unicode:chardata(), Pt :: {X :: integer(), Y :: integer()}.
這是一個為了方便而提供的多載成員函式。它與上述函式的區別僅在於它接受的引數。
-spec endDoc(This) -> ok when This :: wxDC().
結束文件(僅在輸出到印表機時相關)。
-spec endPage(This) -> ok when This :: wxDC().
結束文件頁面(僅在輸出到印表機時相關)。
-spec floodFill(This, Pt, Col) -> boolean() when This :: wxDC(), Pt :: {X :: integer(), Y :: integer()}, Col :: wx:wx_colour().
-spec floodFill(This, Pt, Col, [Option]) -> boolean() when This :: wxDC(), Pt :: {X :: integer(), Y :: integer()}, Col :: wx:wx_colour(), Option :: {style, wx:wx_enum()}.
這是一個為了方便而提供的多載成員函式。它與上述函式的區別僅在於它接受的引數。
-spec getBackground(This) -> wxBrush:wxBrush() when This :: wxDC().
取得用於繪製背景的筆刷。
請參閱:setBackground/2
傳回目前的背景模式:wxPENSTYLE_SOLID
或 wxPENSTYLE_TRANSPARENT
。
-spec getBrush(This) -> wxBrush:wxBrush() when This :: wxDC().
取得目前的筆刷。
請參閱:setBrush/2
取得目前設定字型的字元高度。
取得目前設定字型的平均字元寬度。
-spec getClippingBox(This) -> Result when Result :: {X :: integer(), Y :: integer(), Width :: integer(), Height :: integer()}, This :: wxDC().
取得圍繞目前裁剪區域的矩形。如果未設定裁剪區域,此函式會傳回裝置上下文的範圍。@remarks 裁剪區域以邏輯座標表示。@param x 如果非 <span class='literal'>NULL</span>,則填入裁剪區域左上角的邏輯水平座標,如果函式傳回 true,則填入 0,否則填入。@param y 如果非 <span class='literal'>NULL</span>,則填入裁剪區域左上角的邏輯垂直座標,如果函式傳回 true,則填入 0,否則填入。@param width 如果非 <span class='literal'>NULL</span>,則填入裁剪區域的寬度(如果函式傳回 true)或裝置上下文的寬度(否則填入)。@param height 如果非 <span class='literal'>NULL</span>,則填入裁剪區域的高度(如果函式傳回 true)或裝置上下文的高度(否則填入)。
回傳值:如果存在剪裁區域則為 true,如果沒有活動的剪裁區域則為 false(請注意,此回傳值僅在 wxWidgets 3.1.2 起可用,此函式在之前的版本中不回傳任何值)。
-spec getFont(This) -> wxFont:wxFont() when This :: wxDC().
取得目前的字型。
請注意,即使每個裝置內容物件在建立後都有一些預設字型,此方法最初會回傳 ?wxNullFont,而且僅在呼叫 setFont/2
後才會回傳有效的字型。
-spec getLayoutDirection(This) -> wx:wx_enum() when This :: wxDC().
取得裝置上下文的目前版面配置方向。
在支援 RTL 版面配置的平台上,回傳值將為 wxLayout_LeftToRight
或 wxLayout_RightToLeft
。如果不支持 RTL 版面配置,回傳值將為 wxLayout_Default
。
-spec getLogicalFunction(This) -> wx:wx_enum() when This :: wxDC().
取得目前的邏輯函式。
-spec getMapMode(This) -> wx:wx_enum() when This :: wxDC().
取得裝置上下文的目前對應模式。
請參閱:setMapMode/2
-spec getMultiLineTextExtent(This, String) -> {W :: integer(), H :: integer()} when This :: wxDC(), String :: unicode:chardata().
使用目前選取的字型取得字串的尺寸。
string
是要測量的文字字串。
回傳值:以 {Width,Height} 物件形式表示的文字範圍。
注意:此函式適用於單行和多行字串。
請參閱
-spec getMultiLineTextExtent(This, String, [Option]) -> {W :: integer(), H :: integer(), HeightLine :: integer()} when This :: wxDC(), String :: unicode:chardata(), Option :: {font, wxFont:wxFont()}.
使用目前選取的字型取得字串的尺寸。
string
是要測量的文字字串,如果 heightLine
不是 NULL,則會儲存單行的線高。
文字範圍設定在指定的 w
和 h
指標中。
如果指定了選用參數 font
並且有效,則會使用它來計算文字範圍,否則會使用目前選取的字型。
如果 string
為空,則其水平範圍為 0,但為了方便起見(當使用此函式為可能的多行字串分配足夠的空間時),其垂直範圍與空文字行的高度相同。請注意,此行為與 getTextExtent/3
的行為不同。
注意:此函式適用於單行和多行字串。
請參閱
-spec getPartialTextExtents(This, Text) -> Result when Result :: {Res :: boolean(), Widths :: [integer()]}, This :: wxDC(), Text :: unicode:chardata().
使用 text
開頭到 text
的對應字元之間的寬度來填入 widths
陣列。
通用版本只會使用 getTextExtent/3
來建立每個字元寬度的執行總計,但是,如果各種平台有比通用實作更快或更準確的原生 API 函式,則應改用該函式。
請參閱
-spec getPen(This) -> wxPen:wxPen() when This :: wxDC().
取得目前的畫筆。
請參閱:setPen/2
-spec getPixel(This, Pos) -> Result when Result :: {Res :: boolean(), Colour :: wx:wx_colour4()}, This :: wxDC(), Pos :: {X :: integer(), Y :: integer()}.
在 colour
中取得指定位置的顏色。
此方法不適用於 wxPostScriptDC
或 wxMetafileDC
(未在 wx 中實作),也不適用於 wxOSX 連接埠中的任何 DC,並且只會回傳 false。
注意:可以使用 drawPoint/2
來設定像素。
注意:不應將此方法與 wxPaintDC
一起使用,因為在繪製時存取 DC 可能會導致非預期的結果,尤其是在 wxGTK 中。
傳回裝置的每英吋像素解析度。
這是一個為了方便而提供的多載成員函式。它與上述函式的區別僅在於它接受的引數。
這是一個為了方便而提供的多載成員函式。它與上述函式的區別僅在於它接受的引數。
-spec getTextBackground(This) -> wx:wx_colour4() when This :: wxDC().
取得目前的文字背景顏色。
-spec getTextExtent(This, String) -> {W :: integer(), H :: integer()} when This :: wxDC(), String :: unicode:chardata().
這是一個為了方便而提供的多載成員函式。它與上述函式的區別僅在於它接受的引數。
-spec getTextExtent(This, String, [Option]) -> Result when Result :: {W :: integer(), H :: integer(), Descent :: integer(), ExternalLeading :: integer()}, This :: wxDC(), String :: unicode:chardata(), Option :: {theFont, wxFont:wxFont()}.
使用目前選取的字型取得字串的尺寸。
string
是要測量的文字字串,descent
是從字型的基準線到下行字母底部的尺寸,而 externalLeading
是字型設計師新增到字型的任何額外垂直空間(通常為零)。
文字範圍會以 w
和 h
指標或 {Width,Height} 物件的形式回傳,具體取決於此函式的哪個版本在使用中。
如果指定了選用參數 font
並且有效,則會使用它來計算文字範圍。否則會使用目前選取的字型。
如果 string
為空,則其在兩個方向上的範圍都為 0,這符合預期。
注意:此函式僅適用於單行字串。
請參閱
-spec getTextForeground(This) -> wx:wx_colour4() when This :: wxDC().
取得目前的文字前景顏色。
取得目前的使用者縮放比例。
請參閱:setUserScale/3
-spec gradientFillConcentric(This, Rect, InitialColour, DestColour) -> ok when This :: wxDC(), Rect :: {X :: integer(), Y :: integer(), W :: integer(), H :: integer()}, InitialColour :: wx:wx_colour(), DestColour :: wx:wx_colour().
使用徑向漸層填滿 rect
指定的區域,從圓心上的 initialColour
開始,並淡化到圓外的 destColour
。
圓圈放置在 rect
的中心。
注意:目前此函式非常慢,請勿將其用於即時繪圖。
-spec gradientFillConcentric(This, Rect, InitialColour, DestColour, CircleCenter) -> ok when This :: wxDC(), Rect :: {X :: integer(), Y :: integer(), W :: integer(), H :: integer()}, InitialColour :: wx:wx_colour(), DestColour :: wx:wx_colour(), CircleCenter :: {X :: integer(), Y :: integer()}.
使用徑向漸層填滿 rect
指定的區域,從圓心上的 initialColour
開始,並淡化到圓外的 destColour
。
circleCenter
是指定 rect
中圓圈中心的相對坐標。
注意:目前此函式非常慢,請勿將其用於即時繪圖。
-spec gradientFillLinear(This, Rect, InitialColour, DestColour) -> ok when This :: wxDC(), Rect :: {X :: integer(), Y :: integer(), W :: integer(), H :: integer()}, InitialColour :: wx:wx_colour(), DestColour :: wx:wx_colour().
等同於 gradientFillLinear(This, Rect, InitialColour, DestColour, [])
。
-spec gradientFillLinear(This, Rect, InitialColour, DestColour, [Option]) -> ok when This :: wxDC(), Rect :: {X :: integer(), Y :: integer(), W :: integer(), H :: integer()}, InitialColour :: wx:wx_colour(), DestColour :: wx:wx_colour(), Option :: {nDirection, wx:wx_enum()}.
使用線性漸層填滿 rect
指定的區域,從 initialColour
開始,並最終淡化到 destColour
。
nDirection
指定顏色變化的方向,預設是在矩形的左側使用 initialColour
,在右側使用 destColour
。
如果 DC 可以使用,則傳回 true。
使用目前的對應模式、使用者縮放比例、裝置原點和軸方向,將邏輯 X 座標轉換為裝置座標。
使用目前的對應模式和使用者縮放比例,但忽略軸方向,將邏輯 X 座標轉換為相對裝置座標。
例如,使用此項來轉換寬度。
使用目前的對應模式、使用者縮放比例、裝置原點和軸向,將邏輯 Y 坐標轉換為裝置坐標。
使用目前的對應模式和使用者縮放比例,但忽略軸向,將邏輯 Y 坐標轉換為相對裝置坐標。
例如,使用此項來轉換高度。
取得目前為止繪圖指令中使用的最大水平範圍。
取得目前為止繪圖指令中使用的最大垂直範圍。
取得目前為止繪圖指令中使用的最小水平範圍。
取得目前為止繪圖指令中使用的最小垂直範圍。
-spec resetBoundingBox(This) -> ok when This :: wxDC().
重置邊界框:呼叫此函式後,邊界框不會包含任何內容。
-spec setAxisOrientation(This, XLeftRight, YBottomUp) -> ok when This :: wxDC(), XLeftRight :: boolean(), YBottomUp :: boolean().
設定 x 和 y 軸的方向(即軸上從最低值到最高值的方向)。
預設方向是 x 軸從左到右,y 軸從上到下。
-spec setBackground(This, Brush) -> ok when This :: wxDC(), Brush :: wxBrush:wxBrush().
設定 DC 目前的背景筆刷。
mode
可以是 wxPENSTYLE_SOLID
和 wxPENSTYLE_TRANSPARENT
之一。
此設定決定是否要使用背景顏色繪製文字。
-spec setBrush(This, Brush) -> ok when This :: wxDC(), Brush :: wxBrush:wxBrush().
設定 DC 目前的筆刷。
如果引數是 ?wxNullBrush(或其他無效筆刷;請參閱 wxBrush:isOk/1
),則會從裝置內容中選取目前的筆刷(使 wxDC
沒有任何有效的筆刷),這樣可以安全地銷毀目前的筆刷。
請參閱
-spec setClippingRegion(This, Rect) -> ok when This :: wxDC(), Rect :: {X :: integer(), Y :: integer(), W :: integer(), H :: integer()}.
這是一個為了方便而提供的多載成員函式。它與上述函式的區別僅在於它接受的引數。
-spec setClippingRegion(This, Pt, Sz) -> ok when This :: wxDC(), Pt :: {X :: integer(), Y :: integer()}, Sz :: {W :: integer(), H :: integer()}.
這是一個為了方便而提供的多載成員函式。它與上述函式的區別僅在於它接受的引數。
設定裝置原點(即縮放後以像素為單位的原點)。
此函式在 Windows 列印操作中,對於將圖形放置在頁面上可能很有用。
-spec setFont(This, Font) -> ok when This :: wxDC(), Font :: wxFont:wxFont().
設定 DC 目前的字型。
如果引數是 ?wxNullFont(或其他無效字型;請參閱 wxFont:isOk/1
),則會從裝置內容中選取目前的字型(使 wxDC
沒有任何有效的字型),這樣可以安全地銷毀目前的字型。
請參閱:wxFont
-spec setLayoutDirection(This, Dir) -> ok when This :: wxDC(), Dir :: wx:wx_enum().
設定裝置內容的目前版面配置方向。
-spec setLogicalFunction(This, Function) -> ok when This :: wxDC(), Function :: wx:wx_enum().
設定裝置內容的目前邏輯函式。
注意:由於底層繪圖模型的限制,此函式並非在所有連接埠中都完全支援。特別是,過去常用於繪製橡皮筋或其他移動輪廓的 wxINVERT
並不被 wxGTK3 和 wxMac 支援,而且將來也不會支援。建議的替代方法是正常繪製臨時物件,然後重新整理(受影響的)視窗以稍後移除它們。
它決定 source
像素(來自畫筆或筆刷顏色,或如果使用 blit/6
,則來自來源裝置內容)如何與目前裝置內容中的 destination
像素組合。文字繪製不受此函式影響。
如需更多資訊,請參閱 ?wxRasterOperationMode 列舉值。
預設值為 wxCOPY
,它只會以目前的顏色繪製。其他值則使用邏輯運算來組合目前的顏色和背景。
-spec setMapMode(This, Mode) -> ok when This :: wxDC(), Mode :: wx:wx_enum().
裝置內容的對應模式定義了用於將邏輯
單位轉換為裝置
單位的測量單位。
請注意,在 X 中,文字繪製的處理方式與對應模式不一致;字型一律以點大小指定。但是,設定使用者縮放比例(請參閱 setUserScale/3
)會適當地縮放文字。在 Windows 中,一律使用可縮放的 TrueType 字型;在 X 中,結果取決於字型的可用性,但通常會找到合理的匹配。
坐標原點一律在螢幕/印表機的左上角。
繪製到 Windows 印表機裝置內容時會使用目前的對應模式,但目前 PostScript 輸出會忽略對應模式。
-spec setPalette(This, Palette) -> ok when This :: wxDC(), Palette :: wxPalette:wxPalette().
如果這是視窗 DC 或記憶體 DC,則將指定的調色盤指派給與 DC 相關聯的視窗或點陣圖。
如果引數是 ?wxNullPalette,則會從裝置內容中選取目前的調色盤,並還原原始調色盤。
請參閱:wxPalette
-spec setPen(This, Pen) -> ok when This :: wxDC(), Pen :: wxPen:wxPen().
設定 DC 目前的畫筆。
如果引數是 ?wxNullPen (或另一個無效的筆刷;請參閱 wxPen:isOk/1
),則會從裝置上下文選取目前的筆刷(使 wxDC
不帶任何有效的筆刷),允許安全地銷毀目前的筆刷。
請參閱: wxMemoryDC
-spec setTextBackground(This, Colour) -> ok when This :: wxDC(), Colour :: wx:wx_colour().
設定 DC 目前的文字背景顏色。
-spec setTextForeground(This, Colour) -> ok when This :: wxDC(), Colour :: wx:wx_colour().
設定 DC 目前的文字前景顏色。
請參閱: wxMemoryDC
-spec setUserScale(This, XScale, YScale) -> ok when This :: wxDC(), XScale :: number(), YScale :: number().
設定使用者縮放比例,對於需要「縮放」的應用程式很有用。
-spec startDoc(This, Message) -> boolean() when This :: wxDC(), Message :: unicode:chardata().
開始一個文件(僅在輸出到印表機時相關)。
message
是列印時要顯示的訊息。
-spec startPage(This) -> ok when This :: wxDC().
開始一個文件頁面(僅在輸出到印表機時相關)。