БлогNot. C++ Builder: создаём программно рисунок и растягиваем его на всю форму...

Помощь дата->рейтинг Поиск Почта RSS канал Статистика nickolay.info Домой

C++ Builder: создаём программно рисунок и растягиваем его на всю форму...

Эта типовая задача решается элементарно, так что проекта-примера, думаю, не понадобится.

Создаём пустой проект с формой Form1, в обработчике её события onCreate включим двойную буферизацию:

Form1->DoubleBuffered=true;

В обработчике события onResize формы поставим код

Form1->Invalidate();

для последующей корректной перерисовки при изменении размеров окна.

Основной код (программное создания объекта типа TImage, чтение файла с рисунком и отрисовка) поместим, например, в обработчик события onPaint:

TImage *Image1 = new TImage(this);
Image1->Picture->LoadFromFile("имяфайла.bmp");
Image1->Align = alClient;
Image1->AutoSize=true;
Image1->Stretch=true;
Image1->Width = Form1->ClientWidth;
Image1->Height = Form1->ClientHeight;
TRect tRect(0,0,Form1->ClientWidth,Form1->ClientHeight);
Form1->Canvas->StretchDraw(tRect,Image1->Picture->Bitmap);

Обычный метод Draw может в этом случаем не отмасштабировать рисунок. Ну и, конечно, нужно понимать, что onPaint выполняется каждый раз при перерисовке окна формы, так что каждый раз заново подгружать рисунок может оказаться "разорительно".

Если объект TImage был создан заранее и добавлен на форму, можно обойтись кодом

Image1->Picture->LoadFromFile("имяфайла.bmp");
Image1->Align = alClient;
Image1->AutoSize=true;
Image1->Stretch=true;
Image1->Width = Form1->ClientWidth;
Image1->Height = Form1->ClientHeight;
Form1->Canvas->Draw(0,0,Image1->Picture->Bitmap);

который достаточно поместить в обработчик события onCreate формы.


теги: c++ программирование графика builder

22.10.2013, 13:53; рейтинг: 10438

  свежие записипоиск по блогукомментариистатистикао "вирусах" в архивах .zip

Наверх Яндекс.Метрика
© PerS
вход