查看源代码 wxRegion (wx v2.4.3)
wxRegion
表示设备上下文或窗口上的一个简单或复杂区域。
此类在内部使用引用计数和写时复制,因此此类两个实例之间的赋值非常廉价。因此,您可以实际使用对象而不是指针,而不会出现效率问题。如果更改此类的实例,它将在内部创建自己的数据,以便先前使用引用计数共享数据的其他实例不受影响。
预定义对象(包括 wx.hrl)
- ?wxNullRegion
wxWidgets 文档:wxRegion
概要
函数
清除当前区域。
返回一个值,指示给定的矩形是否包含在该区域内。
返回一个值,指示给定的点是否包含在该区域内。
返回一个值,指示给定的矩形是否包含在该区域内。
将区域转换为黑白位图,其中白色像素在区域内部。
销毁对象
查找此区域和另一个区域的交集。
查找此区域和另一个矩形区域的交集,该区域使用位置和大小指定。
如果区域为空,则返回 true,否则返回 false。
默认构造函数。
使用位图构造区域。
从左上角点和右下角点构造矩形区域。
使用给定的位置和大小构造矩形区域。
按水平和垂直方向指定的偏移量移动区域。
从此区域中减去一个区域。
查找此区域和另一个矩形区域的并集。
查找此区域和位图的非透明像素的并集。
查找此区域和另一个矩形区域的并集,该区域使用位置和大小指定。
查找此区域和另一个区域的异或。
查找此区域和另一个矩形区域的异或,该区域使用位置和大小指定。
类型
-type wxRegion() :: wx:wx_object().
函数
-spec clear(This) -> ok when This :: wxRegion().
清除当前区域。
对象在被清除后变为无效或为空。
-spec contains(This, Pt) -> wx:wx_enum() when This :: wxRegion(), Pt :: {X :: integer(), Y :: integer()}; (This, Rect) -> wx:wx_enum() when This :: wxRegion(), Rect :: {X :: integer(), Y :: integer(), W :: integer(), H :: integer()}.
返回一个值,指示给定的矩形是否包含在该区域内。
此方法对于无效区域始终返回 wxOutRegion
,但在这种情况下仍然可以安全调用。
返回:?wxOutRegion、?wxPartRegion 或 ?wxInRegion 之一。
注意:在 Windows 上,仅返回 ?wxOutRegion 和 ?wxInRegion;值 ?wxInRegion 表示区域的全部或部分包含在此区域中。
-spec contains(This, X, Y) -> wx:wx_enum() when This :: wxRegion(), X :: integer(), Y :: integer().
返回一个值,指示给定的点是否包含在该区域内。
此方法对于无效区域始终返回 wxOutRegion
,但在这种情况下仍然可以安全调用。
返回:返回值是 wxOutRegion
和 wxInRegion
之一。
-spec contains(This, X, Y, Width, Height) -> wx:wx_enum() when This :: wxRegion(), X :: integer(), Y :: integer(), Width :: integer(), Height :: integer().
返回一个值,指示给定的矩形是否包含在该区域内。
此方法对于无效区域始终返回 wxOutRegion
,但在这种情况下仍然可以安全调用。
返回:?wxOutRegion、?wxPartRegion 或 ?wxInRegion 之一。
注意:在 Windows 上,仅返回 ?wxOutRegion 和 ?wxInRegion;值 ?wxInRegion 表示区域的全部或部分包含在此区域中。
-spec convertToBitmap(This) -> wxBitmap:wxBitmap() when This :: wxRegion().
将区域转换为黑白位图,其中白色像素在区域内部。
此方法不能用于无效区域。
-spec destroy(This :: wxRegion()) -> ok.
销毁对象
-spec intersect(This, Rect) -> boolean() when This :: wxRegion(), Rect :: {X :: integer(), Y :: integer(), W :: integer(), H :: integer()}; (This, Region) -> boolean() when This :: wxRegion(), Region :: wxRegion().
查找此区域和另一个区域的交集。
如果此区域无效,则此方法始终失败,即返回 false,但即使在这种情况下仍然可以安全使用。
返回:成功则返回 true,否则返回 false。
备注:创建两个区域的交集,即两个区域中都存在的部分。结果存储在此区域中。
-spec intersect(This, X, Y, Width, Height) -> boolean() when This :: wxRegion(), X :: integer(), Y :: integer(), Width :: integer(), Height :: integer().
查找此区域和另一个矩形区域的交集,该区域使用位置和大小指定。
如果此区域无效,则此方法始终失败,即返回 false,但即使在这种情况下仍然可以安全使用。
返回:成功则返回 true,否则返回 false。
备注:创建两个区域的交集,即两个区域中都存在的部分。结果存储在此区域中。
如果区域为空,则返回 true,否则返回 false。
如果区域无效,则始终返回 true。
-spec new() -> wxRegion().
默认构造函数。
此构造函数创建一个无效或空的对象,即对其调用 IsOk() 返回 false,而调用 isEmpty/1
返回 true。
-spec new(Rect) -> wxRegion() when Rect :: {X :: integer(), Y :: integer(), W :: integer(), H :: integer()}; (Bmp) -> wxRegion() when Bmp :: wxBitmap:wxBitmap().
使用位图构造区域。
有关更多详细信息,请参见 union/5
。
-spec new(TopLeft, BottomRight) -> wxRegion() when TopLeft :: {X :: integer(), Y :: integer()}, BottomRight :: {X :: integer(), Y :: integer()}.
从左上角点和右下角点构造矩形区域。
-spec new(X, Y, Width, Height) -> wxRegion() when X :: integer(), Y :: integer(), Width :: integer(), Height :: integer().
使用给定的位置和大小构造矩形区域。
按水平和垂直方向指定的偏移量移动区域。
如果区域无效,则不能调用此方法,因为它没有意义。尝试执行此操作会导致断言失败。
返回:如果成功则返回 true,否则返回 false(区域则保持不变)。
-spec subtract(This, Rect) -> boolean() when This :: wxRegion(), Rect :: {X :: integer(), Y :: integer(), W :: integer(), H :: integer()}; (This, Region) -> boolean() when This :: wxRegion(), Region :: wxRegion().
从此区域中减去一个区域。
如果此区域无效,则此方法始终失败,即返回 false,但即使在这种情况下仍然可以安全使用。
返回:成功则返回 true,否则返回 false。
备注:此操作组合了“此”区域中不是第二个区域一部分的部分。结果存储在此区域中。
-spec union(This, Region) -> boolean() when This :: wxRegion(), Region :: wxRegion:wxRegion() | wxBitmap:wxBitmap(); (This, Rect) -> boolean() when This :: wxRegion(), Rect :: {X :: integer(), Y :: integer(), W :: integer(), H :: integer()}.
查找此区域和另一个矩形区域的并集。
即使此区域无效,也可以使用此方法,并且在这种情况下具有自然行为,即使此区域等于给定的矩形。
返回:成功则返回 true,否则返回 false。
备注:此操作创建一个区域,该区域组合了此区域和第二个区域的所有部分。结果存储在此区域中。
-spec union(This, Bmp, TransColour) -> boolean() when This :: wxRegion(), Bmp :: wxBitmap:wxBitmap(), TransColour :: wx:wx_colour().
-spec union(This, Bmp, TransColour, [Option]) -> boolean() when This :: wxRegion(), Bmp :: wxBitmap:wxBitmap(), TransColour :: wx:wx_colour(), Option :: {tolerance, integer()}.
查找此区域和位图的非透明像素的并集。
要被视为透明的颜色在 transColour
参数中指定,以及可选的颜色容差值。
返回:成功则返回 true,否则返回 false。
备注:此操作创建一个区域,该区域组合了此区域和第二个区域的所有部分。结果存储在此区域中。
-spec union(This, X, Y, Width, Height) -> boolean() when This :: wxRegion(), X :: integer(), Y :: integer(), Width :: integer(), Height :: integer().
查找此区域和另一个矩形区域的并集,该区域使用位置和大小指定。
即使此区域无效,也可以使用此方法,并且在这种情况下具有自然行为,即使此区域等于给定的矩形。
返回:成功则返回 true,否则返回 false。
备注:此操作创建一个区域,该区域组合了此区域和第二个区域的所有部分。结果存储在此区域中。
-spec 'Xor'(This, Rect) -> boolean() when This :: wxRegion(), Rect :: {X :: integer(), Y :: integer(), W :: integer(), H :: integer()}; (This, Region) -> boolean() when This :: wxRegion(), Region :: wxRegion().
查找此区域和另一个区域的异或。
即使此区域无效,也可以使用此方法,并且在这种情况下具有自然行为,即使此区域等于给定的 region
。
返回:成功则返回 true,否则返回 false。
备注:此操作创建一个区域,该区域组合了此区域和第二个区域的所有部分,除了任何重叠区域。结果存储在此区域中。
-spec 'Xor'(This, X, Y, Width, Height) -> boolean() when This :: wxRegion(), X :: integer(), Y :: integer(), Width :: integer(), Height :: integer().
查找此区域和另一个矩形区域的异或,该区域使用位置和大小指定。
即使此区域无效,也可以使用此方法,并且在这种情况下具有自然行为,即使此区域等于给定的矩形。
返回:成功则返回 true,否则返回 false。
备注:此操作创建一个区域,该区域组合了此区域和第二个区域的所有部分,除了任何重叠区域。结果存储在此区域中。