Умея создавать окно эллипсовидной формы, для вас не составит большого труда слепить что-нибудь наподобие того, что показано на рисунке. Всё, что вам нужно сделать - это создать не один, а два региона и объединить их, используя функцию CombineRgn, т.е. теперь по созданию окна можно написать что-то вроде этого:
Мы уже знаем какую функцию нужно использовать для объединения регионов, но как же она действует и что же ей нужно указывать?
Вводятся следующие параметры:
Дескриптор региона назначения,
Дескриптор первого региона источника,
Дескриптор второго региона источника,
Режим взаимодействия регионов источников.
В качестве режима мы указали константу RGN_DIFF, а использовать можем:
RGN_AND - Создает пересечение из двух смешанных областей,
RGN_COPY - Создает копию области, идентифицированной дескриптором первой области источника,
RGN_DIFF - Выводит части первой области источника, которые не пересекаются со второй,
RGN_OR - Создает объединение двух смешанных областей,
RGN_XOR - Создает объединение двух смешанных областей за исключением зоны перекрытия.
Окно в виде кольца создается с помощью функции CombineRgn, которая объединяет два эллипсовидных региона, используя режим взаимодействия RGN_DIFF.
Комментарии и вопросы
Получайте свежие новости и обновления по Object Pascal, Delphi и Lazarus прямо в свой смартфон. Подпишитесь на наш Telegram-канал delphi_kansoftware и будьте в курсе последних тенденций в разработке под Linux, Windows, Android и iOS