| Версия для печати темы
Нажмите сюда для просмотра этой темы в оригинальном формате |
| Форум программистов > C++ Builder > Прорисовка TForm по заданному объекту HRGN |
| Автор: lexluther 11.3.2005, 08:45 |
| Всем привет, Подскажите мне, пожалуйста, как решается следующая задача: У меня есть форма (наследник от 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 |
| Автор: JAnty 11.3.2005, 12:13 |
| Какая у тубя ОС? |