2

我想在我的绘图程序中实现复制、剪切和粘贴(复制所选图像的一部分)

我不知道如何开始

有任何想法吗?

4

5 回答 5

1

看到这个...

http://www.wallpaperama.com/forums/javascript-copy-selected-text-box-select-all-highlight-text-form-copy-paste-t706.html

但对于 Firefox,它不起作用。我也在寻找类似的。如果我得到更多,会发布。

于 2009-06-19T10:41:40.757 回答
1
  1. 使用系统范围的剪贴板,以防万一用户在您的应用程序的一个实例中复制并粘贴到另一个实例中,或者如果用户关闭窗口并重新打开它,他可以将数据粘贴回来。
  2. 从实现复制和粘贴的基类继承程序的所有形状。
  3. 对于复制(或剪切),序列化对象并将其放置在系统剪贴板中。
  4. 对于 paste,读取系统剪贴板并尝试反序列化回形状对象(如果转换失败,剪贴板内容不是您的应用程序的对象)
  5. 粘贴形状的位置稍微向左下方移动(让用户知道绘图中有一个新形状)
于 2009-07-23T19:59:58.733 回答
1

复制:获取所选矩形,创建该大小的新图像,复制当前图像并将其放置在新矩形上,偏移所选矩形的左上角

于 2009-05-21T07:23:28.607 回答
1

总之有两种方式存在

1)您自己的剪贴板 2)系统范围的剪贴板

在第二种情况下,使用必须使用标准格式来存储您的数据。阅读 MSDN 以获取有关 Windows 剪贴板的更多信息

或者您可以维护两个剪贴板 - 自己的和系统的。然后在您的剪贴板中,您可以存储应用程序的特定信息,并在系统剪贴板中存储图像

于 2009-05-21T07:51:26.290 回答
1

以下是一些全球要点,它们将大大加快您将面临的问题。

尝试搜索可逆线/橡皮筋。在图片中进行选择。尝试在 VB .NET 中搜索 LockBits,以创建一种快速读取和写入像素的方法。尝试学习后台线程,并报告进度。对于需要很长时间的每像素操作。尝试制作MDI。有足够的状态栏来报告状态。将项目文件保存到磁盘时尝试序列化为 xml/binary(例如 psd)。这也很方便,用于创建撤消功能。

于 2009-05-21T11:13:35.443 回答