CombineRgn не работает - PullRequest
       22

CombineRgn не работает

0 голосов
/ 22 июня 2010

У меня два региона говорят rgn1 и rgn2.Я хотел объединить их обоих с помощью функции CombineRgn.Поэтому я пишу -

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

Его возвращаемое значение в виде ОШИБКИ.

Я проверил, что rgn1 и rgn2 являются правильными регионами.
Спасибо.

1 Ответ

6 голосов
/ 22 июня 2010

Вы также инициализировали rgnMain ?Несколько нелогично (но, как описано в документации для 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
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...