檢視原始碼 wxMemoryDC (wx v2.4.3)
記憶體裝置上下文提供了一種在點陣圖上繪製圖形的方法。
當在單色點陣圖上繪製時,使用 wxWHITE
、wxWHITE_PEN
和 wxWHITE_BRUSH
將繪製背景顏色 (即 0),而所有其他顏色將繪製前景顏色 (即 1)。
必須先將點陣圖選入新的記憶體 DC 中,才能用於任何用途。典型用法如下:
請注意,必須先刪除記憶體 DC (或將點陣圖從中選出),才能將點陣圖重新選入另一個記憶體 DC 中。
並且,在對點陣圖資料執行任何其他操作之前,必須先將點陣圖從記憶體 DC 中選出。
當 wxMemoryDC
物件超出範圍時,會自動執行此操作。
請參閱
這個類別繼承自以下類別,並可以使用以下類別的函式:
wxWidgets 文件:wxMemoryDC
摘要
函式
銷毀物件
建構新的記憶體裝置上下文。
建構一個新的記憶體裝置上下文,使其具有與給定的現有裝置上下文相同的特性。
運作方式與 selectObjectAsSource/2
完全相同,但當您選擇點陣圖是因為要修改它時,您應該使用這個函式,例如:
將給定的點陣圖選入裝置上下文,以用作記憶體點陣圖。
類型
-type wxMemoryDC() :: wx:wx_object().
函式
-spec destroy(This :: wxMemoryDC()) -> ok.
銷毀物件
-spec new() -> wxMemoryDC().
建構新的記憶體裝置上下文。
使用 wxDC:isOk/1
成員來測試建構子是否成功建立可用的裝置上下文。別忘了在 DC 中選取點陣圖,然後才能在上面繪圖。
-spec new(Dc) -> wxMemoryDC() when Dc :: wxDC:wxDC() | wxBitmap:wxBitmap().
建構一個新的記憶體裝置上下文,使其具有與給定的現有裝置上下文相同的特性。
此建構子會建立一個與 wxMSW 中的 dc
相容
的記憶體裝置上下文,在其他埠中會忽略此引數。如果 dc
為 NULL,則會建立一個與螢幕相容的裝置上下文,就像使用預設建構子一樣。
-spec selectObject(This, Bitmap) -> ok when This :: wxMemoryDC(), Bitmap :: wxBitmap:wxBitmap().
運作方式與 selectObjectAsSource/2
完全相同,但當您選擇點陣圖是因為要修改它時,您應該使用這個函式,例如:
在此 DC 上繪圖。
當修改點陣圖時使用 selectObjectAsSource/2
可能會產生一些與 wxBitmap
作為參考計數物件相關的問題 (請參閱 overview_refcount)。
在使用更新的點陣圖資料之前,請務必先將它從上下文中選出,方法是將 ?wxNullBitmap 選入裝置上下文中,或完全銷毀裝置上下文。
如果點陣圖已在此裝置上下文中選取,則不會執行任何操作。如果它在另一個上下文中選取,則函式會斷言,並且在點陣圖上繪圖將無法正確運作。
-spec selectObjectAsSource(This, Bitmap) -> ok when This :: wxMemoryDC(), Bitmap :: wxBitmap:wxBitmap().
將給定的點陣圖選入裝置上下文,以用作記憶體點陣圖。
將點陣圖選入記憶體 DC 中,可讓您在 DC (以及因此點陣圖) 中繪圖,並且可以使用 wxDC:blit/6
將點陣圖複製到視窗。為此,您可能會發現 wxDC:drawIcon/3
更易於使用。
如果引數是 ?wxNullBitmap (或某些其他未初始化的 wxBitmap
),則會將目前的點陣圖從裝置上下文中選出,並還原原始點陣圖,從而可以安全地銷毀目前的點陣圖。