Оригинальный DVD-ROM: eXeL@B DVD !
eXeL@B ВИДЕОКУРС !

ВИДЕОКУРС ВЗЛОМ
выпущен 2 июля!


УЗНАТЬ БОЛЬШЕ >>
Домой | Статьи | RAR-cтатьи | FAQ | Форум | Скачать | Видеокурс
Новичку | Ссылки | Программирование | Интервью | Архив | Связь

БОЛЬШОЙ FAQ ПО DELPHI



окно в виде кольца

Умея создавать окно эллипсовидной формы, для вас не составит большого труда слепить что-нибудь наподобие того, что показано на рисунке. Всё, что вам нужно сделать - это создать не один, а два региона и объединить их, используя функцию CombineRgn, т.е. теперь по созданию окна можно написать что-то вроде этого:
procedure TForm1.FormCreate(Sender: TObject);
var
hsWindowRegion, hsWindowRegion2:Integer;
begin
hsWindowRegion:=CreateEllipticRgn(50,50,350,200);
hsWindowRegion2:=CreateEllipticRgn(80,80,200,150);
CombineRgn(hsWindowRegion,hsWindowRegion,hsWindowRegion2,RGN_DIFF);
SetWindowRgn(Handle,hsWindowRegion,true);
end;
Как это сделано?
Мы уже знаем какую функцию нужно использовать для объединения регионов, но как же она действует и что же ей нужно указывать? Вводятся следующие параметры:
1) Дескриптор региона назначения,
2) Дескриптор первого региона источника,
3) Дескриптор второго региона источника,
4) Режим взаимодействия регионов источников.
В качестве режима мы указали константу RGN_DIFF, а использовать можем:
RGN_AND - Создает пересечение из двух смешанных областей,
RGN_COPY - Создает копию области, идентифицированной дескриптором первой области источника,
RGN_DIFF - Выводит части первой области источника, которые не пересекаются со второй,
RGN_OR - Создает объединение двух смешанных областей,
RGN_XOR - Создает объединение двух смешанных областей за исключением зоны перекрытия.



<< ВЕРНУТЬСЯ В ОГЛАВЛЕНИЕ



Материалы находятся на сайте https://exelab.ru/pro/



Оригинальный DVD-ROM: eXeL@B DVD !


Вы находитесь на EXELAB.rU
Проект ReactOS