PDA

Ver la Versión Completa : Copiar un formulario al portapapeles en tiempo de ejecución


Angel.Matilla
14-01-2014, 18:39:30
En tiempo de ejecución ¿Cómo podría copiar el formulario activo al portapapeles para pegarlo luego en otro sitio? Estoy usando C++ 6.

ecfisa
14-01-2014, 22:24:20
Hola Angel.


#include <clipbrd.hpp>

void WinCtrlToClipbrd(TWinControl *aWinCtrl)
{
HDC hdcSrc = GetWindowDC(aWinCtrl->Handle);
Graphics::TBitmap *BM = new Graphics::TBitmap;

BM->Width = aWinCtrl->Width;
BM->Height = aWinCtrl->Height;
BitBlt(BM->Canvas->Handle, 0, 0, BM->Width, BM->Height,
hdcSrc, 0, 0, SRCCOPY);
Clipboard()->Assign(BM);

ReleaseDC(aWinCtrl->Handle, hdcSrc);
delete BM;
}


Ejemplo de uso:

WinCtrlToClipbrd(Form1);
WinCtrlToClipbrd(Memo1);
// etc ...


Saludos :)

Angel.Matilla
15-01-2014, 10:20:46
Muchísimas gracias.