C++ Builder: Capturar el contenido de un form como una imagen

Para hacer una captura del contenido de un form (junto con todos sus botones y demás), tenemos la siguiente función

Código:
void GuardarImagenDelControl(TWinControl *Control, AnsiString FileName)
{
HDC DC;
Graphics::TBitmap *BitmpPrueba = new Graphics::TBitmap();
try{
BitmpPrueba->Width = Control->Width;
BitmpPrueba->Height = Control->Height;

DC = GetWindowDC(Control->Handle);
BitBlt(BitmpPrueba->Canvas->Handle, 0, 0, Control->Width, Control->Height, DC, 0, 0, SRCCOPY);
ReleaseDC(Control->Handle, DC);
BitmpPrueba->SaveToFile(FileName);
}
__finally{
delete BitmpPrueba;
}
}

Esa función la agregamos a nuestro programa y , por ejemplo, podemos poner un  botón con el siguiente código en su evento OnClick:

Código:
GuardarImagenDelControl(Form1,"c:\prueba.bmp");

Aquí, Form1 es el nombre de tu formulario (puse Form1 porque ese nombre le pone por default Builder cuando creas un nuevo proyecto) y la ruta que viene ahí la puedes cambiar por la que tu quieras, es donde se va a guardar la imagen bmp.

Ejecuta el programa y ve su funcionamiento.

Nota: por como esta definida la función GuardarImagenDelControl,  puede hacerse una captura de cualquier objeto u otro formulario en nuestro proyecto.