Syrex |
Отправлено: 21.12.2003, 15:30 |
|
Не зарегистрирован
|
Подскажите пожалуйста, как отобразить рисунок канвы PaintBox-а в Bitmap, для того, чтобы этот Bitmap рисовать в этом же PaintBox-е в событии OnPaint. |
|
oJIeGa |
Отправлено: 21.12.2003, 22:27 |
|
Не зарегистрирован
|
А в чём сложность то????
Я это использовал для того, что бы сохранить файл из пеинтбокса...
Graphics::TBitmap *BrushBmp = new Graphics::TBitmap;
BrushBmp->Width = pbGraf->Width;
BrushBmp->Height = pbGraf->Height;
BrushBmp->Canvas->CopyRect(pbGraf->ClientRect, pbGraf->Canvas, pbGraf->ClientRect);
AnsiString s = "\Otch.bmp";
BrushBmp->SaveToFile(s);
В общем здеся влавное, это 2-я и 3-я строчки, без них у меня не работало!
Ну а как восстановить на ОнПеинт сам думай... |
|
Syrex |
Отправлено: 21.12.2003, 23:18 |
|
Не зарегистрирован
|
Проблема то и заключается в том, что при такаком подходе, в канвас битмапа сохраняется только видимая часть канваса паинт бокса плюс прихватывая с собой изображение экрана по краям формы приложения.
Конечно, можно рисовать сразу на канвасе битмапа, но по скорости, это на несколько порядков ниже.
В том то и мысль, чтобы:
1) На канвасе паинт бокса в цикле нарисовать мудрёную картинку
2) Сохранить этот канвас в битмапе
3) Битмап с картинкой паинт бокса расовать на этом паинт боксе в событии OnPaint, чтобы таскать мышкой паинт бокс без затирания картинки.
Плюс ко всему размет паинт бокса например 3000 точек. |
|
|