檢視原始碼 wxBufferedPaintDC (wx v2.4.3)

這是 wxBufferedDC 的子類別,可在 EVT\_PAINT() 事件處理函式中使用,以實現雙緩衝繪圖。

只需使用此類別代替 wxPaintDC,並確保在類別初始化程式碼中的某處呼叫 wxWindow:setBackgroundStyle/2 並使用 wxBG_STYLE_PAINT,這樣就足以(大致)避免閃爍。唯一要注意的是,如果你將此類別與 wxScrolled (在 wx 中未實作) 一起使用,你可能 需要在其上呼叫 wxScrolledWindow:prepareDC/2,因為它已經在內部為真實的底層 wxPaintDC 執行此操作。

請參閱

此類別繼承自,並且可以使用來自

wxWidgets 文件:wxBufferedPaintDC

摘要

函式

銷毀物件

如同 wxBufferedDC,您可以提供用於緩衝的點陣圖,或讓此物件在內部建立一個(在後者的情況下,將使用視窗客戶端部分的大小)。

型別

-type wxBufferedPaintDC() :: wx:wx_object().

函式

-spec destroy(This :: wxBufferedPaintDC()) -> ok.

銷毀物件

-spec new(Window) -> wxBufferedPaintDC() when Window :: wxWindow:wxWindow().

等同於 new(Window, [])

-spec new(Window, Buffer) -> wxBufferedPaintDC()
             when Window :: wxWindow:wxWindow(), Buffer :: wxBitmap:wxBitmap();
         (Window, [Option]) -> wxBufferedPaintDC()
             when Window :: wxWindow:wxWindow(), Option :: {style, integer()}.
-spec new(Window, Buffer, [Option]) -> wxBufferedPaintDC()
             when
                 Window :: wxWindow:wxWindow(),
                 Buffer :: wxBitmap:wxBitmap(),
                 Option :: {style, integer()}.

如同 wxBufferedDC,您可以提供用於緩衝的點陣圖,或讓此物件在內部建立一個(在後者的情況下,將使用視窗客戶端部分的大小)。

傳遞 wxBUFFER_CLIENT_AREA 作為 style 參數,以表示僅緩衝視窗的客戶端區域,或傳遞 wxBUFFER_VIRTUAL_AREA 以表示緩衝點陣圖涵蓋虛擬區域。