以下代码可以将当前窗体的客户区(窗体画布)作为一个位图复制到剪贴板
FormImage := GetFormImage;
但以上代码只是将窗体的客户区(不包括标题栏)复制到剪贴板,请各位
高手指教:怎样才能将整个窗体(包括标题栏和客户区)作为一个位图复制到剪贴板,谢谢!
FormImage := GetFormImage;
但以上代码只是将窗体的客户区(不包括标题栏)复制到剪贴板,请各位
高手指教:怎样才能将整个窗体(包括标题栏和客户区)作为一个位图复制到剪贴板,谢谢!
var
Format: Word;
Data: Cardinal;
APalette: HPALETTE;
begin
{TBitmap.SaveToClipboardFormat 函数的三个参数都是接受数据用的, 按要求类型定义即可}
GetFormImage.SaveToClipboardFormat(Format, Data, APalette);
{放入剪切板}
Clipboard.SetAsHandle(Format, Data);end;
var
dc: HDC;
bmp: TBitmap;
Format : Word;
Bitmap : TBitMap;
Data: THandle;
Palette: HPALETTE;
begin
dc := GetDC(0);
if dc <> 0 then
begin
bmp := TBitmap.Create();
bmp.Width := Width;
bmp.Height := Height; BitBlt(bmp.Canvas.Handle, 0, 0, Width, Height, dc, Left, Top, SRCCOPY); bmp.SaveToClipboardFormat(Format, Data, Palette);
Clipboard.SetAsHandle(Format, Data);
bmp.Free();
ReleaseDC(0, dc);
end;
end;