查看源代码 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,但在这种情况下仍然可以安全调用。

返回:返回值是 wxOutRegionwxInRegion 之一。

链接到此函数

contains(This, X, Y, Width, Height)

查看源代码
-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 getBox(This) -> {X :: integer(), Y :: integer(), W :: integer(), H :: integer()}
                when This :: wxRegion().
-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。

备注:创建两个区域的交集,即两个区域中都存在的部分。结果存储在此区域中。

链接到此函数

intersect(This, X, Y, Width, Height)

查看源代码
-spec intersect(This, X, Y, Width, Height) -> boolean()
                   when
                       This :: wxRegion(),
                       X :: integer(),
                       Y :: integer(),
                       Width :: integer(),
                       Height :: integer().

查找此区域和另一个矩形区域的交集,该区域使用位置和大小指定。

如果此区域无效,则此方法始终失败,即返回 false,但即使在这种情况下仍然可以安全使用。

返回:成功则返回 true,否则返回 false。

备注:创建两个区域的交集,即两个区域中都存在的部分。结果存储在此区域中。

-spec isEmpty(This) -> boolean() when This :: wxRegion().

如果区域为空,则返回 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

链接到此函数

new(TopLeft, BottomRight)

查看源代码
-spec new(TopLeft, BottomRight) -> wxRegion()
             when
                 TopLeft :: {X :: integer(), Y :: integer()},
                 BottomRight :: {X :: integer(), Y :: integer()}.

从左上角点和右下角点构造矩形区域。

链接到此函数

new(X, Y, Width, Height)

查看源代码
-spec new(X, Y, Width, Height) -> wxRegion()
             when X :: integer(), Y :: integer(), Width :: integer(), Height :: integer().

使用给定的位置和大小构造矩形区域。

-spec offset(This, Pt) -> boolean() when This :: wxRegion(), Pt :: {X :: integer(), Y :: integer()}.
-spec offset(This, X, Y) -> boolean() when This :: wxRegion(), X :: integer(), Y :: 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。

备注:此操作创建一个区域,该区域组合了此区域和第二个区域的所有部分。结果存储在此区域中。

链接到此函数

union(This, Bmp, TransColour)

查看源代码
-spec union(This, Bmp, TransColour) -> boolean()
               when This :: wxRegion(), Bmp :: wxBitmap:wxBitmap(), TransColour :: wx:wx_colour().

等效于 union(This, Bmp, TransColour, [])

-spec union(This, Bmp, TransColour, [Option]) -> boolean()
               when
                   This :: wxRegion(),
                   Bmp :: wxBitmap:wxBitmap(),
                   TransColour :: wx:wx_colour(),
                   Option :: {tolerance, integer()}.

查找此区域和位图的非透明像素的并集。

要被视为透明的颜色在 transColour 参数中指定,以及可选的颜色容差值。

返回:成功则返回 true,否则返回 false。

备注:此操作创建一个区域,该区域组合了此区域和第二个区域的所有部分。结果存储在此区域中。

链接到此函数

union(This, X, Y, Width, Height)

查看源代码
-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。

备注:此操作创建一个区域,该区域组合了此区域和第二个区域的所有部分,除了任何重叠区域。结果存储在此区域中。

链接到此函数

'Xor'(This, X, Y, Width, Height)

查看源代码
-spec 'Xor'(This, X, Y, Width, Height) -> boolean()
               when
                   This :: wxRegion(),
                   X :: integer(),
                   Y :: integer(),
                   Width :: integer(),
                   Height :: integer().

查找此区域和另一个矩形区域的异或,该区域使用位置和大小指定。

即使此区域无效,也可以使用此方法,并且在这种情况下具有自然行为,即使此区域等于给定的矩形。

返回:成功则返回 true,否则返回 false。

备注:此操作创建一个区域,该区域组合了此区域和第二个区域的所有部分,除了任何重叠区域。结果存储在此区域中。