powered by simpleCommunicator - 2.0.61     © 2026 Programmizd 02
Целевая тема:
Создать новую тему:
Автор:
Закрыть
Цитировать
Форумы / C++ [игнор отключен] [закрыт для гостей] / Прорисовка TForm по заданному объекту HRGN
3 сообщений из 3, страница 1 из 1
Прорисовка TForm по заданному объекту HRGN
    #32954684
Фотография lexluther
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Всем привет,

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

У меня есть форма (наследник от 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
...
Рейтинг: 0 / 0
Прорисовка TForm по заданному объекту HRGN
    #32954928
Siebentearbeit
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Если можно получить хэндл окна формы и есть возможность звать винапи, то

int SetWindowRgn(hWnd, hRgn, bRedraw);
и всё.
...
Рейтинг: 0 / 0
Прорисовка TForm по заданному объекту HRGN
    #32955654
Фотография JibSkeart
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Хмм , что то нынче опять обострение , на переделывание формы у окон :)

зы не в обиду сказанно :)

 ш
(';')
(V),(V),,
Код: plaintext
 JS 
...
Рейтинг: 0 / 0
3 сообщений из 3, страница 1 из 1
Форумы / C++ [игнор отключен] [закрыт для гостей] / Прорисовка TForm по заданному объекту HRGN
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


Просмотр
0 / 0
Close
Debug Console [Select Text]