Справочник функций

Ваш аккаунт

Войти через: 
Забыли пароль?
Регистрация
Информацию о новых материалах можно получать и без регистрации:

Почтовая рассылка

Подписчиков: -1
Последний выпуск: 19.06.2015

Прорисовка TForm по заданному объекту HRGN

504
11 марта 2005 года
lexluther
71 / / 26.10.2004
Всем привет,

Подскажите мне, пожалуйста, как решается следующая задача:

У меня есть форма (наследник от TForm), есть функция вычисляющая объект типа HRGN. Как мне заставить Builder отрисовать объект типа TForm по полученному региону HRGN? Цель,- нарисовать фигурное окно по заданному изображению путем делания прозрачным всех пикселей заданного цвета в изображении.

Функция взята из инета (статья "Окна нестандартной формы", автор Т. Сорока), и нижеследует (если кому нужно):

HRGN TfMainForm::BitmapToRegion(TPicture *APicture, TColor ATransparentColor)
{
   HRGN Result = 0;
   for(int y = 0; y < APicture->Height; y++)
      {
        int x = 0, start = 0, end = 0;
        while((x < APicture->Width) && (APicture->Bitmap->Canvas->Pixels[x][y] == ATransparentColor))
         x++;

        start = x ;

       while((x < APicture->Width) && (APicture->Bitmap->Canvas->Pixels[x][y] != ATransparentColor))
         x++;

        end = x ;

        if(!Result)
         Result = CreateRectRgn(start, y, end, y + 1);
       else
         {
           HRGN TempRgn = CreateRectRgn(start, y, end, y + 1);
           CombineRgn(Result, Result, TempRgn, RGN_OR);
           DeleteObject(TempRgn);
         }
     }

   return Result;
 }

В статье не сказано, что с данной функцией делать в проекте под C++Builder. Подскажите мне пожалуйста что мне нужно сделать в моем проекте на C++Builder, чтоб отрисовать столь желанную фигурную форму? Т.е. что мне делать с этой функцией BitmapToRegion(), и куда ее вписывать?

Best Wishes,
 
Artiom Ivanov, L CEO
CubeReality Inc,
http://www.cubereality.com
317
11 марта 2005 года
Relax
573 / / 20.09.2000
есть в Windows API функция SetWindowRgn(Handle, hRgn, true); - она тебе поможет :)
Реклама на сайте | Обмен ссылками | Ссылки | Экспорт (RSS) | Контакты
Добавить статью | Добавить исходник | Добавить хостинг-провайдера | Добавить сайт в каталог