查看源代码 wxPaintEvent (wx v2.4.3)
当窗口内容需要重绘时,会发送绘制事件。
此事件的处理程序必须创建一个 wxPaintDC
对象,并使用它来绘制窗口内容。例如:
请注意,您 不能
在 EVT_PAINT 处理程序中创建其他类型的 wxDC
(例如 wxClientDC
或 wxWindowDC
),并且不要在此事件处理程序之外创建 wxPaintDC
。
您可以通过检索已损坏的矩形并仅重绘这些矩形来优化绘制。矩形是相对于客户端区域的,并且是未滚动的,因此您需要使用当前视图位置进行一些计算,以获得逻辑的、滚动的单位。以下是使用 wxRegionIterator
(在 wx 中未实现) 类的示例:
备注:请注意,一般来说,不可能更改标准控件(例如 wxButton
)的绘制,因此您不应尝试处理它们的绘制事件,因为即使它可能在某些平台上有效,这本质上是不可移植的,并且不会在所有地方都有效。
参见: 概述事件
此类派生自以下类,并可以使用其函数:
wxWidgets 文档:wxPaintEvent
事件
使用 wxEvtHandler:connect/3
和 wxPaintEventType
来订阅此类型的事件。
概要
类型
-type wxPaint() :: #wxPaint{type :: wxPaintEvent:wxPaintEventType()}.
-type wxPaintEvent() :: wx:wx_object().
-type wxPaintEventType() :: paint.