查看源代码 wxPaintEvent (wx v2.4.3)

当窗口内容需要重绘时,会发送绘制事件。

此事件的处理程序必须创建一个 wxPaintDC 对象,并使用它来绘制窗口内容。例如:

请注意,您 不能 在 EVT_PAINT 处理程序中创建其他类型的 wxDC (例如 wxClientDCwxWindowDC),并且不要在此事件处理程序之外创建 wxPaintDC

您可以通过检索已损坏的矩形并仅重绘这些矩形来优化绘制。矩形是相对于客户端区域的,并且是未滚动的,因此您需要使用当前视图位置进行一些计算,以获得逻辑的、滚动的单位。以下是使用 wxRegionIterator (在 wx 中未实现) 类的示例:

备注:请注意,一般来说,不可能更改标准控件(例如 wxButton)的绘制,因此您不应尝试处理它们的绘制事件,因为即使它可能在某些平台上有效,这本质上是不可移植的,并且不会在所有地方都有效。

参见: 概述事件

此类派生自以下类,并可以使用其函数:

wxWidgets 文档:wxPaintEvent

事件

使用 wxEvtHandler:connect/3wxPaintEventType 来订阅此类型的事件。

概要

类型

-type wxPaint() :: #wxPaint{type :: wxPaintEvent:wxPaintEventType()}.
-type wxPaintEvent() :: wx:wx_object().
-type wxPaintEventType() :: paint.