窗体包括标题作为一个位图复制到剪贴板

unit Unit1;

interface

uses
  Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms,
  Dialogs, StdCtrls,Clipbrd;

type
  TForm1 = class(TForm)
    Button1: TButton;
    Button2: TButton;
    procedure Button1Click(Sender: TObject);
    procedure Button2Click(Sender: TObject);
  private
    { Private declarations }
  public
    { Public declarations }
  end;

var
  Form1: TForm1;

implementation

{$R *.dfm}

procedure TForm1.Button1Click(Sender: TObject);
var
  Format: Word;
  Data: Cardinal;
  APalette: HPALETTE;
begin
  {TBitmap.SaveToClipboardFormat 函数的三个参数都是接受数据用的, 按要求类型定义即可}
  GetFormImage.SaveToClipboardFormat(Format, Data, APalette);
  {放入剪切板}
  Clipboard.SetAsHandle(Format, Data);

end;

procedure TForm1.Button2Click(Sender: TObject);
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;

参考:http://www.cnblogs.com/key-ok/p/3380436.html

时间: 2024-10-20 09:05:29

窗体包括标题作为一个位图复制到剪贴板的相关文章

c# 将窗体从一个project复制到另一个project

步骤 1 :  假设窗体名为 Form1 ,  将 Form1.design.cs , Form1.cs , Form1.resx 三个文件copy 到目标文件夹 2 :  先 add existing , 将 Form1.design.cs 添加进去 , 然后记得改 project namespace 3 :   然后加 Form.cs , 也是要改 project namespace 4 : 加 Form1.resx 5 : 最后的关键步骤是 : 手动修改 目标project 的 cspro

python Tkinter 基础 创建一行文字的窗体并设置窗体的标题 Label,title

# Tkinter 基础 创建一行文字的窗体并设置窗体的标题 Label,title import tkinter as tk app = tk.Tk() # 实例化一个TK 用于容纳整个GUI程序 app.title("test01") # 设置窗体的标题栏 # 设置label主键 , 显示文本,图标与图片 theLabel = tk.Label(app, text = "这是一个窗口") theLabel.pack() # 自动调节 主键的尺寸与位置 # 窗口的

将C盘一个文本文件复制到D盘。

//将C盘一个文本文件复制到D盘./*复制的原理:其实就是将C盘下的文件数据存储到D盘的一个文件中. 步骤:1.在D盘创建一个文件,用于存储C盘文件中的数据.2.定义读取流和C盘文件关联.3.通过不断的读写完成数据存储.4.关闭资源. */ public class CopyText { public static void main(String[] args) throws IOException { copy_2(); } public static void copy_2() { Fil

(不包括\0) 编写一个int string_len(char *s), 返回字符串s的字符长度

#include <stdio.h> /* (不包括\0) 编写一个int string_len(char *s), 返回字符串s的字符长度 */ int string_len(char *s); int main() { //char *name = "itcast"; // 男 \u434\u4343\u434 int size = string_len("tre777"); printf("%d\n", size); retur

boost实用工具:创建一个禁止复制的类 noncopyable

boost的noncopyable允许创建一个禁止复制的类,使用很简单,但很好用! C++ Code 12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455565758596061626364656667686970717273747576777879808182838485868788899091929394   /* boost_noncopya

如何将一个数据库中的一个表复制到另一个数据库中的表中

如何将一个数据库中的一个表复制到另一个数据库中的表中 2013-09-11 17:13匿名 | 浏览 13763 次 如何将一个数据库中的一个表复制到另一个数据库中的表中两个表的列名不同.有知道的么?SQL语句直接导过去.! 2013-09-12 20:26网友采纳 热心网友 如果另一个库中没有同名的表select * into b数据库.dbo.a表 from a数据库.dbo.a表 where 条件 如果是追加到另一个表中inert into b数据库.dbo.a表select * from

如何把一个Array 复制到ArrayList中?

如何把一个Array 复制到ArrayList中? string[] array = new string[]{" 1", "2"," 3", "4"," 5" }; ArrayList list = new ArrayList();一:使用for循环,将array数组中的数据逐步加入到ArrayList的对象中: //1.for循环            for (int i = 0; i < ar

MDI-设置子窗体只能弹出一个

不足之处,欢迎指正! 什么是MDI..我表示不知道的呢. MDI(Multiple Document Interface)就是所谓的多文档界面,与此对应就有单文档界面 (SDI), 它是微软公司从Windows 2.0下的Microsoft Excel电子表格程序开始引入的,Excel电子表格用户有时需要同时操作多份表格,MDI正好为这种操作多表格提供了很大的方便,于是就产生了MDI程序.--度娘如此解释 新建一个WindowForm程序.得到一个窗体作为我们父窗体Parent.拖入一个menu

java移动文件夹、 慎用java file.renameTo(f)方法 、 java从一个目录复制文件到另一个目录下 、 java代码完成删除文件、文件夹 、

java移动文件夹(包含子文件和子文件夹): http://blog.csdn.net/yongh701/article/details/45070353 慎用java    file.renameTo(f)方法: http://www.cnblogs.com/mrwangblog/p/3934506.html 注意看结果,从C盘到E盘失败了,从C盘到D盘成功了.因为我的电脑C.D两个盘是NTFS格式的,而E盘是FAT32格式的.所以从C到E就是上面文章所说的"file systems"