檢視原始碼 wxBufferedPaintDC (wx v2.4.3)
這是 wxBufferedDC
的子類別,可在 EVT\_PAINT()
事件處理函式中使用,以實現雙緩衝繪圖。
只需使用此類別代替 wxPaintDC
,並確保在類別初始化程式碼中的某處呼叫 wxWindow:setBackgroundStyle/2
並使用 wxBG_STYLE_PAINT,這樣就足以(大致)避免閃爍。唯一要注意的是,如果你將此類別與 wxScrolled
(在 wx 中未實作) 一起使用,你可能 不
需要在其上呼叫 wxScrolledWindow:prepareDC/2
,因為它已經在內部為真實的底層 wxPaintDC
執行此操作。
請參閱
此類別繼承自,並且可以使用來自
wxWidgets 文件:wxBufferedPaintDC
摘要
型別
-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 以表示緩衝點陣圖涵蓋虛擬區域。