Home

Page 109
Page 109
background image

102 Глава 3

 HRGN;

begin

 bsNone;

 :=

 WindowRgn, True);

end;

В первой строчке стиль окна изменяется на bsNone, чтобы окно не имело

никаких рамок и заголовков. В следующих двух строчках размеры клиент-
ской области окна устанавливаются равными размерам изображения.

Последние две строчки являются самыми сложными в программе. Здесь

 CreateRgnFromBitmap

 еще

стоит написать). Она будет создавать нестандартную область, и потом
сохранит ее в переменной windowRgn. В последней строке вызывается API-
функция SetWindowRgn, которая связывает созданную область с окном при-

ложения.

Теперь немного о функции CreateRgnFromBitmap. Я постарался

 ь-

но упростить ее код, чтобы вы смогли сами во всем разобраться, и даже по-

жертвовал ради этого производительностью. Но при этом программа не ли-

шена функциональности и прекрасно будет работать с любой
картинкой (листинг

 Главное запомнить, что цвет точки левого верх-

него угла будет использоваться в качестве прозрачного.

Листинг 3.11. Функция создания области по

function

 HRGN;

i,

 Integer;

i width,

 Integer;

 i right:

 HRGN;

begin

Result := 0;

//Запоминаем размеры окна
i_width

 :

//Определяем прозрачный цвет


Copyright © 2020 Файлообменник files.d-lan.dp.ua

Использование любых материалов сайта возможно только с разрешения автора.