社区
C#
帖子详情
各位,谁知道如何调用windows系统自带的copy,paste,cut????????
ZC747
2004-10-17 08:32:25
我想在自己的windows菜单上,添加像系统编辑菜单的那种菜单,请问各位谁用过,感激不尽!!
请大家帮帮忙!!!
...全文
388
22
打赏
收藏
各位,谁知道如何调用windows系统自带的copy,paste,cut????????
我想在自己的windows菜单上,添加像系统编辑菜单的那种菜单,请问各位谁用过,感激不尽!! 请大家帮帮忙!!!
复制链接
扫一扫
分享
举报
写回复
配置赞助广告
用AI写文章
22 条
回复
切换为时间正序
请发表友善的回复…
发表回复
打赏红包
BearRui
2004-10-18
打赏
举报
回复
Clipboard。
如果是控制richtextbox的话就可以直接调用richtextbox的方法:
richtextbox.Cut();
richtextbox.Copy();
richtextbox.Paste();
cjzlxy
2004-10-18
打赏
举报
回复
帮你顶...
alwaysinsist
2004-10-18
打赏
举报
回复
学习。
hanbinghai
2004-10-18
打赏
举报
回复
复制:
object s = "看看";
Clipboard.SetDataObject(s.ToString());
粘贴:
IDataObject iData = Clipboard.GetDataObject();
// Determines whether the data is in a format you can use.
if(iData.GetDataPresent(DataFormats.Text))
{
// Yes it is, so display it in a text box.
this.richTextBox1.Text = (String)iData.GetData(DataFormats.Text);
}
帮助里搜索Clipboard看看使用方法
lbx1979
2004-10-18
打赏
举报
回复
其实menu也是对应着一个对象的,
鼠标右键的context menu还不是在一个对象里触发后也会不一样吗
你要做的是获取当前的对象,然后调用Clipboard的方法
ZC747
2004-10-18
打赏
举报
回复
我觉得粘贴,复制,剪切,这些系统常用的东西,或许能有个便捷的现成方法,就像点击鼠标右键弹出的那个菜单一样,如果能把右键菜单的功能放在Menu上,就搞定了:)
前面的朋友提到richtextbox可以用现成的方法;其他的可输入控件是不是都可以??
我是想将功能做在主menu上,所以不能只调用一个控件的方法,大家帮忙!:)
ZC747
2004-10-18
打赏
举报
回复
加分!!!!!
hanbinghai
2004-10-18
打赏
举报
回复
抛砖引玉,等待答案
hanbinghai
2004-10-18
打赏
举报
回复
先做个paste的例子
using System;
using System.Drawing;
using System.Collections;
using System.ComponentModel;
using System.Windows.Forms;
using System.Data;
namespace WindowsApplication6
{
/// <summary>
/// Form1 的摘要说明。
/// </summary>
public class Form1 : System.Windows.Forms.Form
{
private System.Windows.Forms.RichTextBox richTextBox1;
private System.Windows.Forms.ContextMenu contextMenu1;
private System.Windows.Forms.MenuItem menuItem1;
/// <summary>
/// 必需的设计器变量。
/// </summary>
private System.ComponentModel.Container components = null;
//粘贴剪切板
[System.Runtime.InteropServices.DllImport("user32")]
private static extern IntPtr SetClipboardViewer(IntPtr hwnd);
[System.Runtime.InteropServices.DllImport("user32")]
private static extern IntPtr ChangeClipboardChain(IntPtr hwnd,IntPtr hWndNext);
[System.Runtime.InteropServices.DllImport("user32")]
private static extern int SendMessage(IntPtr hwnd,int wMsg,IntPtr wParam,IntPtr lParam);
const int WM_DRAWCLIPBOARD = 0x308;
const int WM_CHANGECBCHAIN = 0x30D;
IntPtr NextClipHwnd;
public Form1()
{
//
// Windows 窗体设计器支持所必需的
//
InitializeComponent();
//
// TODO: 在 InitializeComponent 调用后添加任何构造函数代码
//
}
/// <summary>
/// 清理所有正在使用的资源。
/// </summary>
protected override void Dispose( bool disposing )
{
if( disposing )
{
if (components != null)
{
components.Dispose();
}
}
base.Dispose( disposing );
}
#region Windows 窗体设计器生成的代码
/// <summary>
/// 设计器支持所需的方法 - 不要使用代码编辑器修改
/// 此方法的内容。
/// </summary>
private void InitializeComponent()
{
this.richTextBox1 = new System.Windows.Forms.RichTextBox();
this.contextMenu1 = new System.Windows.Forms.ContextMenu();
this.menuItem1 = new System.Windows.Forms.MenuItem();
this.SuspendLayout();
//
// richTextBox1
//
this.richTextBox1.ContextMenu = this.contextMenu1;
this.richTextBox1.Location = new System.Drawing.Point(20, 12);
this.richTextBox1.Name = "richTextBox1";
this.richTextBox1.Size = new System.Drawing.Size(218, 168);
this.richTextBox1.TabIndex = 0;
this.richTextBox1.Text = "richTextBox1";
//
// contextMenu1
//
this.contextMenu1.MenuItems.AddRange(new System.Windows.Forms.MenuItem[] {
this.menuItem1});
//
// menuItem1
//
this.menuItem1.Index = 0;
this.menuItem1.Text = "粘贴";
this.menuItem1.Click += new System.EventHandler(this.menuItem1_Click);
//
// Form1
//
this.AutoScaleBaseSize = new System.Drawing.Size(6, 14);
this.ClientSize = new System.Drawing.Size(292, 273);
this.Controls.Add(this.richTextBox1);
this.Name = "Form1";
this.Text = "Form1";
this.ResumeLayout(false);
}
#endregion
/// <summary>
/// 应用程序的主入口点。
/// </summary>
[STAThread]
static void Main()
{
Application.Run(new Form1());
}
private void menuItem1_Click(object sender, System.EventArgs e)
{
NextClipHwnd=SetClipboardViewer(this.Handle);
ChangeClipboardChain(this.Handle,NextClipHwnd);
//从观察链中删除本观察窗口
SendMessage(NextClipHwnd,WM_CHANGECBCHAIN,this.Handle,NextClipHwnd);
}
//剪切板
protected override void WndProc(ref System.Windows.Forms.Message m)
{
switch(m.Msg)
{
case WM_DRAWCLIPBOARD:
SendMessage(NextClipHwnd,m.Msg,m.WParam,m.LParam);
//将WM_DRAWCLIPBOARD消息传递到下一个观察链中的窗口
IDataObject iData = Clipboard.GetDataObject();
if(iData.GetDataPresent(DataFormats.Text)|iData.GetDataPresent(DataFormats.OemText))
{
this.richTextBox1.Rtf =(String)iData.GetData(DataFormats.Rtf);
}
break;
default:
base.WndProc(ref m);
break;
}
}
}
}
fellowcheng
2004-10-18
打赏
举报
回复
学习
cpio
2004-10-18
打赏
举报
回复
这个
你只用分配些内存用来存放复制后的东西
比如你窗体中有个图像,通过复制后,你把这个图片放到指定的变量中(可能是类什么的)
粘贴的时候,再把它整过来就可以了
ZC747
2004-10-18
打赏
举报
回复
加分,感谢各位,虽说问题还没解决:)
ZC747
2004-10-18
打赏
举报
回复
只能针对某个控件调用吗?ye
ZC747
2004-10-18
打赏
举报
回复
呵呵,身体第一啊,我现在都神情恍惚了,系统资源严重不足:~(
ZC747
2004-10-18
打赏
举报
回复
感谢
ZC747
2004-10-17
打赏
举报
回复
太感谢大家了,让我好好研究一下,呵呵,赶工程好几天没睡好了!
ZC747
2004-10-17
打赏
举报
回复
谢谢各位
张海霖
2004-10-17
打赏
举报
回复
IDataObject clipboardData=Clipboard.GetDataObject();
String text;
if(clipboardData.GetDataPresent(DataFormats.Text))
{
text=(String)clipboardData.GetData(DataFormats.Text);
}
winxieddd
2004-10-17
打赏
举报
回复
呵呵~~~~你是说想调用系统的copy,paste,cut吧?
太难了,偶不会,不过,帮你搜到:
http://www.donews.net/zwell/articles/30698.aspx
希望你不头大:)不过,要是用就这三个的话,你可以直接写代码呀。
张海霖
2004-10-17
打赏
举报
回复
String text="some text to copy";
Clipboard.SetDataObject(text);
加载更多回复(2)
给EditCtrl添加自定义菜单并实现
Copy
,
Cut
和
Paste
功能
首先自定义一个类CEditCtrl,该类继承与CEdit。在类中添加 void CEdit::OnContextMenu(CWnd*, CPoint) { CMenu Menu; Menu.LoadMenu(IDR_MENU_CONTEXT); // IDR_MENU_CONTEXT是自定义的菜单的ID CMenu* pMenu = Menu.GetSubMenu( 0 ); CPoint Pos;
JS操作
windows
的功能
study by blueidea HOT.select
copy
cut
paste
open saveas
用最少的代码为你的窗体实现剪贴板操作
procedureTForm1.
Cut
1Click(Sender:TObject); begin SendMessage(ActiveControl.Handle,WM_
Cut
,0,0); end; procedureTForm1.
Copy
1Click(Sender:TObject); begin...
Windows
操作
系统
定义了大量的消息类型
Windows
消息类型众多,每种消息类型都对应特定的事件或行为。理解和处理这些消息是开发
Windows
桌面应用程序的基础。
多媒体播放(
windows
音乐播放)
【 声明:版权所有,欢迎转载,请勿用于商业用途。 联系信箱:feixiaoxing @163.com】 在
windows
平台上面,开发音乐播放音乐不是一件很复杂的事情。当然,你如果需要自己进行音频的编解码工作,那还是有一些工作量的。事实上,如果我们只是用到播放音乐这个功能,比如写个小游戏、教育软件啥的,那么使用
windows
自带
的API就可以实现这个目的。 1、添加多媒体库...
C#
111,128
社区成员
642,533
社区内容
发帖
与我相关
我的任务
C#
.NET技术 C#
复制链接
扫一扫
分享
社区描述
.NET技术 C#
社区管理员
加入社区
获取链接或二维码
近7日
近30日
至今
加载中
查看更多榜单
社区公告
让您成为最强悍的C#开发者
试试用AI创作助手写篇文章吧
+ 用AI写文章