查看源代码 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 一样,你可以提供用于缓冲的位图,也可以让此对象在内部创建一个位图(在后一种情况下,使用窗口客户端部分的大小)。

style 参数传递 wxBUFFER_CLIENT_AREA 表示仅缓冲窗口的客户区,或者传递 wxBUFFER_VIRTUAL_AREA 表示缓冲位图覆盖虚拟区域。