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

内存设备上下文提供了一种在位图上绘制图形的方法。

当在单色位图上绘制时,使用 wxWHITEwxWHITE_PENwxWHITE_BRUSH 将绘制背景色(即 0),而所有其他颜色将绘制前景色(即 1)。

在位图可以用于任何操作之前,必须将其选择到新的内存 DC 中。典型的用法如下:

请注意,必须删除内存 DC(或从中选择出位图),然后才能将位图重新选择到另一个内存 DC 中。

并且,在对位图数据执行任何其他操作之前,必须将位图从内存 DC 中选择出来

wxMemoryDC 对象超出作用域时,会自动发生这种情况。

参见

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

wxWidgets 文档:wxMemoryDC

摘要

函数

销毁对象

构造一个新的内存设备上下文。

构造一个具有与给定现有设备上下文相同特征的新内存设备上下文。

selectObjectAsSource/2 的工作方式完全相同,但当你选择位图以进行修改时,应使用此函数,例如:

将给定的位图选择到设备上下文中,以用作内存位图。

类型

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

函数

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

销毁对象

-spec new() -> wxMemoryDC().

构造一个新的内存设备上下文。

使用 wxDC:isOk/1 成员来测试构造函数是否成功创建了可用的设备上下文。不要忘记在绘制之前将位图选择到 DC 中。

-spec new(Dc) -> wxMemoryDC() when Dc :: wxDC:wxDC() | wxBitmap:wxBitmap().

构造一个具有与给定现有设备上下文相同特征的新内存设备上下文。

此构造函数创建与 wxMSW 中的 dc 兼容的内存设备上下文,该参数在其他端口中将被忽略。如果 dc 为 NULL,则会创建一个与屏幕兼容的设备上下文,就像默认构造函数一样。

链接到此函数

selectObject(This, Bitmap)

查看源代码
-spec selectObject(This, Bitmap) -> ok when This :: wxMemoryDC(), Bitmap :: wxBitmap:wxBitmap().

selectObjectAsSource/2 的工作方式完全相同,但当你选择位图以进行修改时,应使用此函数,例如:

在此 DC 上绘制。

在修改位图时使用 selectObjectAsSource/2 可能会导致与 wxBitmap 作为引用计数对象相关的一些问题(请参阅 overview_refcount)。

在使用更新的位图数据之前,请确保首先将其从上下文中选择出来,方法是将 ?wxNullBitmap 选择到设备上下文中或完全销毁设备上下文。

如果位图已在此设备上下文中选中,则不执行任何操作。如果它在另一个上下文中选中,则该函数断言,并且在位图上进行绘制将无法正常工作。

参见:wxDC:drawBitmap/4

链接到此函数

selectObjectAsSource(This, Bitmap)

查看源代码
-spec selectObjectAsSource(This, Bitmap) -> ok when This :: wxMemoryDC(), Bitmap :: wxBitmap:wxBitmap().

将给定的位图选择到设备上下文中,以用作内存位图。

将位图选择到内存 DC 中,允许您在 DC 中(以及因此在位图中)进行绘制,还可以使用 wxDC:blit/6 将位图复制到窗口。为此,您可能会发现使用 wxDC:drawIcon/3 更容易。

如果参数为 ?wxNullBitmap(或某些其他未初始化的 wxBitmap),则将当前位图从设备上下文中选择出来,并还原原始位图,从而允许安全地销毁当前位图。