代码之家  ›  专栏  ›  技术社区  ›  Himadri

Combinergn不工作

  •  0
  • Himadri  · 技术社区  · 16 年前

    我有两个地区说 rgn1 和 rgn2 . 我想使用combinergn函数将它们结合起来。所以我写-

    if CombineRgn(rgnMain,rgn1,rgn2,RGN_OR) = error then
             ShowMessage('error'); 
    

    它将返回值作为错误。

    我已经测试了rgn1和rgn2是正确的区域。
    谢谢您。

    1 回复  |  直到 16 年前
        1
  •  6
  •   Deltics    16 年前

    你也初始化了吗 RGNEMAN ?有点反直觉(但如中所述 the documentation for CombineRgn() )目标/输出区域必须存在,以便接收两个输入区域的所需组合,但它可以是完全空的区域:

    rgnMain := CreateRectRgn(0, 0, 0, 0);
    if CombineRgn(rgnMain, rgn1, rgn2, RGN_OR) ... then
      // etc
    

    如果您希望避免创建一个完全独立的区域,那么可以接受并可以指定一个输入区域作为目标区域(根据定义,输入区域必须是一个现有的有效区域,这样就避免了单独初始化一个新的目标区域):

    if CombineRgn(rgn1, rgn1, rgn2, RGN_OR) ... then
      // etc