Версия для печати темы
Нажмите сюда для просмотра этой темы в оригинальном формате
Форум программистов > C++ Builder > Скриншот на канву Bitmap


Автор: Bugmaker 14.12.2011, 22:56
Всем добрый вечер.
Существует следующая проблема. Пытаюсь вывести скриншот на канву Image.

Код

void __fastcall TForm1::Button1Click(TObject *Sender)
{
  unsigned DataHandle;
    HPALETTE APalette;
    Word Format;
    Graphics::TBitmap *Bitmap=new Graphics::TBitmap;
    HDC DC=GetDC(0);

        Bitmap->Height=Screen->Height;
        Bitmap->Width=Screen->Width;
        BitBlt(
            Image1->Canvas->Handle,
            0, 0, 
            Screen->Width, 
            Screen->Height,
            DC, 0, 0, 
            SRCCOPY);

    delete  Bitmap;
}



При повторном нажатии на кнопку, канва не обновляется.
Её надо как-то очищать? Или ошибка в чем-то другом??

На форме соответственно 1 кнопка и 1 имейдж.
Заранее спасибо за помощь.

Автор: bsa 15.12.2011, 10:05
Что за "канва"? Form = форма, Canvas = холст.

Автор: sawfish 15.12.2011, 10:52
Цитата

Её надо как-то очищать?

Ее нужно "обновить", последней строкой функции Button1Click должна быть строка:
Код

Image1->Invalidate();

Автор: Bugmaker 15.12.2011, 20:50
bsa, извиняюсь что на таком корявом языке назвал... " канву Image." - Image-Canvas.

sawfish - Спасибо огромное! То что я искал.

Powered by Invision Power Board (http://www.invisionboard.com)
© Invision Power Services (http://www.invisionpower.com)