查看源代码 wxMemoryDC (wx v2.4.3)
内存设备上下文提供了一种在位图上绘制图形的方法。
当在单色位图上绘制时,使用 wxWHITE
、wxWHITE_PEN
和 wxWHITE_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,则会创建一个与屏幕兼容的设备上下文,就像默认构造函数一样。
-spec selectObject(This, Bitmap) -> ok when This :: wxMemoryDC(), Bitmap :: wxBitmap:wxBitmap().
与 selectObjectAsSource/2
的工作方式完全相同,但当你选择位图以进行修改时,应使用此函数,例如:
在此 DC 上绘制。
在修改位图时使用 selectObjectAsSource/2
可能会导致与 wxBitmap
作为引用计数对象相关的一些问题(请参阅 overview_refcount)。
在使用更新的位图数据之前,请确保首先将其从上下文中选择出来,方法是将 ?wxNullBitmap 选择到设备上下文中或完全销毁设备上下文。
如果位图已在此设备上下文中选中,则不执行任何操作。如果它在另一个上下文中选中,则该函数断言,并且在位图上进行绘制将无法正常工作。
-spec selectObjectAsSource(This, Bitmap) -> ok when This :: wxMemoryDC(), Bitmap :: wxBitmap:wxBitmap().
将给定的位图选择到设备上下文中,以用作内存位图。
将位图选择到内存 DC 中,允许您在 DC 中(以及因此在位图中)进行绘制,还可以使用 wxDC:blit/6
将位图复制到窗口。为此,您可能会发现使用 wxDC:drawIcon/3
更容易。
如果参数为 ?wxNullBitmap(或某些其他未初始化的 wxBitmap
),则将当前位图从设备上下文中选择出来,并还原原始位图,从而允许安全地销毁当前位图。