Him*_*dri 0 delphi winapi region
我有两个地区说rgn1
和rgn2
.我想使用CombineRgn函数将它们组合在一起.所以我写 -
if CombineRgn(rgnMain,rgn1,rgn2,RGN_OR) = error then
ShowMessage('error');
Run Code Online (Sandbox Code Playgroud)
它的返回值为ERROR.
我测试过rgn1和rgn2是正确的区域.
谢谢.
你有没有初步化rgnMain?有些违反直觉(但是如CombineRgn()的文档中所述)目标/输出区域必须存在才能接收两个输入区域的所需组合,但它可以是一个完全空的区域:
rgnMain := CreateRectRgn(0, 0, 0, 0);
if CombineRgn(rgnMain, rgn1, rgn2, RGN_OR) ... then
// etc
Run Code Online (Sandbox Code Playgroud)
如果您希望避免必须创建一个完全独立的区域,那么可以接受并且可以将其中一个输入区域指定为目标区域(根据定义,输入区域必须是现有的有效区域,因此这样可以避免单独初始化新目的地区域):
if CombineRgn(rgn1, rgn1, rgn2, RGN_OR) ... then
// etc
Run Code Online (Sandbox Code Playgroud)