|
Компьютерный форум OSzone.net » Программирование, базы данных и автоматизация действий » Программирование и базы данных » C/C++ - [C++Builder 2007] Форма по рисунку |
|
C/C++ - [C++Builder 2007] Форма по рисунку
|
Старожил Сообщения: 467 |
Профиль | Отправить PM | Цитировать Вот код, по которому форма рисоваться должна по маске
void __fastcall TForm1::FormCreate(TObject *Sender) { POINT pt; pt.x = 0; pt.y = 0; HRGN R1=CreateRgnFromBitmap("C:\\1.bmp",pt,true); SetWindowRgn(Handle, R1, TRUE); } //--------------------------------------------------------------------------- HRGN CreateRgnFromBitmap(Graphics::TBitmap *bmp, TPoint pPoint, bool bEqaul = true) { int f, x, y; bool b = false; HRGN Rgn, ResRgn = CreateRectRgn(0, 0, 0, 0); for (y = 0; y < bmp->Height; y++) for (x = 0; x < bmp->Width; x++) { if (!bEqaul^(bmp->Canvas->Pixels[x][y] != bmp->Canvas->Pixels[pPoint.x][pPoint.y])) { if (!b) { f = x; b = true; } else if (x == (bmp->Width - 1)) { Rgn = CreateRectRgn(f, y, x, y + 1); CombineRgn(ResRgn, ResRgn, Rgn, RGN_OR); b = false; } } else if (b) { Rgn = CreateRectRgn(f, y, x, y + 1); CombineRgn(ResRgn, ResRgn, Rgn, RGN_OR); b = false; } } return ResRgn; } |
|
------- Отправлено: 17:54, 12-04-2009 |
Старожил Сообщения: 467
|
Профиль | Отправить PM | Цитировать C предыдущей проблемой разобрался, есть новая
. Как побороть? Чувствую я неправильно битмап гружу.
|
------- Отправлено: 18:43, 12-04-2009 | #2 |
Для отключения данного рекламного блока вам необходимо зарегистрироваться или войти с учетной записью социальной сети. Если же вы забыли свой пароль на форуме, то воспользуйтесь данной ссылкой для восстановления пароля. |
Забанен Сообщения: 463
|
Тут две ошибки:
1) в функции CreateRgnFromBitmap - первый параметр указатель на битмап, а ты передаешь строку - надо вот так: void __fastcall TForm1::FormCreate(TObject *Sender) { POINT pt; pt.x = 0; pt.y = 0; Graphics::TBitmap *bmp = new Graphics::TBitmap; bmp->LoadFromFile("c:\\1.bmp"); HRGN R1=CreateRgnFromBitmap(bmp,pt,true); SetWindowRgn(Handle, R1, TRUE); bmp->Free(); } HRGN CreateRgnFromBitmap(Graphics::TBitmap *bmp, TPoint pPoint, bool bEqaul = true) { int f, x, y; bool b = false; HRGN Rgn, ResRgn = CreateRectRgn(0, 0, 0, 0); for (y = 0; y < bmp->Height; y++) for (x = 0; x < bmp->Width; x++) { if (!bEqaul^(bmp->Canvas->Pixels[x][y] != bmp->Canvas->Pixels[pPoint.x][pPoint.y])) { if (!b) { f = x; b = true; } else if (x == (bmp->Width - 1)) { Rgn = CreateRectRgn(f, y, x, y + 1); CombineRgn(ResRgn, ResRgn, Rgn, RGN_OR); b = false; } } else if (b) { Rgn = CreateRectRgn(f, y, x, y + 1); CombineRgn(ResRgn, ResRgn, Rgn, RGN_OR); b = false; } } return ResRgn; } //--------------------------------------------------------------------------- */ void __fastcall TForm1::FormCreate(TObject *Sender) { POINT pt; pt.x = 0; pt.y = 0; Graphics::TBitmap *bmp = new Graphics::TBitmap; bmp->LoadFromFile("c:\\1.bmp"); HRGN R1=CreateRgnFromBitmap(bmp,pt,true); SetWindowRgn(Handle, R1, TRUE); bmp->Free(); } |
Отправлено: 21:49, 12-04-2009 | #3 |
Старожил Сообщения: 467
|
Профиль | Отправить PM | Цитировать Цитата Alan85:
Цитата Alan85:
|
||
------- Отправлено: 07:47, 13-04-2009 | #4 |
Забанен Сообщения: 463
|
Цитата crashtuak:
|
||
Отправлено: 07:53, 13-04-2009 | #5 |
Старожил Сообщения: 467
|
Профиль | Отправить PM | Цитировать Цитата Alan85:
|
|
------- Отправлено: 22:40, 13-04-2009 | #6 |
Будем жить, Маэстро... Сообщения: 6694
|
Профиль | Сайт | Отправить PM | Цитировать Цитата crashtuak:
|
|
------- Отправлено: 12:07, 14-04-2009 | #7 |
Старожил Сообщения: 467
|
Профиль | Отправить PM | Цитировать Цитата Drongo:
|
|
------- Отправлено: 19:52, 14-04-2009 | #8 |
Участник сейчас на форуме | Участник вне форума | Автор темы | Сообщение прикреплено |
| |||||
Название темы | Автор | Информация о форуме | Ответов | Последнее сообщение | |
Разное - [решено] Совместим ли C++Builder 2007 с Windows 7? | ineXPert | Microsoft Windows 7 | 5 | 17-01-2010 13:27 | |
C/C++ - Visual C++ 9.0 и C++Builder 2007 - программы на голой винде (без .NET и тд) | crashtuak | Программирование и базы данных | 9 | 10-09-2009 22:25 | |
C/C++ - [C++Builder 2009] Форма по png файлу с альфа каналом (есть пример на дельфи) | crashtuak | Программирование и базы данных | 9 | 16-04-2009 08:30 | |
C/C++ - [C++Builder 2007] Две формы поверх всех окон и одна форма поверх другой | crashtuak | Программирование и базы данных | 3 | 13-04-2009 16:33 | |
C/C++ - [решено] [C++Builder 2007] TTreeView & CheckBox | crashtuak | Программирование и базы данных | 1 | 12-04-2009 12:08 |
|