c++ 把编辑框中选中的文字复制到剪贴板和读取剪贴板的文字(注意,是文本!)

作者&投稿:习刮 (若有异议请与网页底部的电邮联系)
在富文本框中选定的文字如何进行操作,如把它拷贝到剪贴板(ClipBoard)中?~

ctrl+c
ctrl+v

UpdateData(TRUE);

typedef int (WINAPI ICEPUB_TOCLIPBOARD)(char *strBuffer);
ICEPUB_TOCLIPBOARD *icePub_toClipboard = 0;
HINSTANCE hDLLDrv = LoadLibrary("icePubDll.dll");
if(hDLLDrv)
{
icePub_toClipboard = (ICEPUB_TOCLIPBOARD *)GetProcAddress(hDLLDrv, "icePub_toClipboard");
}

if(icePub_toClipboard != NULL)
{
icePub_toClipboard(m_test1.GetBuffer(-1));
}
if(hDLLDrv)
FreeLibrary(hDLLDrv);

//m_test1为文本框控件关联变量CString

;
#include <windows.h>
#include <shlobj.h>

//复制文件到剪贴板
//没有加入错误判断,请自行修改
int CopyFileToClipboard(char szFileName[]);

int main()
{
CopyFileToClipboard("D:\\user.txt");

return 0;
}

int CopyFileToClipboard(char szFileName[])
{
UINT uDropEffect;
HGLOBAL hGblEffect;
LPDWORD lpdDropEffect;
DROPFILES stDrop;

HGLOBAL hGblFiles;
LPSTR lpData;

uDropEffect = RegisterClipboardFormat("Preferred DropEffect");
hGblEffect = GlobalAlloc(GMEM_ZEROINIT | GMEM_MOVEABLE | GMEM_DDESHARE,sizeof(DWORD));
lpdDropEffect = (LPDWORD)GlobalLock(hGblEffect);
*lpdDropEffect = DROPEFFECT_COPY;//复制; 剪贴则用DROPEFFECT_MOVE
GlobalUnlock(hGblEffect);

stDrop.pFiles = sizeof(DROPFILES);
stDrop.pt.x = 0;
stDrop.pt.y = 0;
stDrop.fNC = FALSE;
stDrop.fWide = FALSE;

hGblFiles = GlobalAlloc(GMEM_ZEROINIT | GMEM_MOVEABLE | GMEM_DDESHARE,\
sizeof(DROPFILES)+strlen(szFileName)+2);
lpData = (LPSTR)GlobalLock(hGblFiles);
memcpy(lpData,&stDrop,sizeof(DROPFILES));
strcpy(lpData+sizeof(DROPFILES),szFileName);
GlobalUnlock(hGblFiles);

OpenClipboard(NULL);
EmptyClipboard();
SetClipboardData(CF_HDROP,hGblFiles);
SetClipboardData(uDropEffect,hGblEffect);
CloseClipboard();

return 1;
}
另外,站长团上有产品团购,便宜有保证


永济市19841614054: vc++6 mfc里,如何点单击一个按钮,实现(1)把一个编辑框中的文字复制到另一个中?(2)退出程序 -
晁卿欣舒: 首先要做好弹出的对话框,绑定类比如 dlg_pop弹出有两种形式模态对话框:dlg_pop dp;dp.Domodal();非模态:dlg_pop dp;//这句一定要放在cpp文件的全局位置,否则不会弹出按钮代码:if (!dp.m_hWnd) //判断对话框是否已被创建 { dp.Create(IDD_POP); //IDD_POP是对话框ID,创建对话框的时候可以设置 } dp.ShowWindow(SW_SHOW);模态和非模态的区别你一试就知道了

永济市19841614054: C++如何通过SENDMESSAGE发送全选命令,最终结果是想复制一个编辑框中的内容 -
晁卿欣舒: 全选,复制到剪贴板很简单.但你说的“将复制的内容贴到一个文本文件中”是什么意思? 这文本文件是另一程序正在编辑的? 还是在同一程序的另一个编辑框里正编辑着? 还是根本没有打开的磁盘文件.

永济市19841614054: 运行后的C++对话框输入时怎么做到粘贴剪切板的内容? 对于对话框内的内容如何复制到剪切板上? -
晁卿欣舒: 右键单击标题栏,然后选编辑

永济市19841614054: C++如何获取文本框的内容并且存到文本文件中 -
晁卿欣舒: CFile file; CString str; GetDlgItemText(IDC_EDIT1,str);//IDC_EDIT1是编辑框的ID啊不一样就改下 file.Write(str,str.GetLength()); file.Close();API; SendMessage(hwnd,WM_GETTEXT,255,str) hwad是edit的句柄 str 要保存字符串的变量

永济市19841614054: C++如何将字符串写入粘贴板 -
晁卿欣舒: 用cut函数来完成: Cut() 功能 将数据窗口控件当前行列上编辑框中的所选内容剪切掉并保存到系统剪贴板,对RichText 风格的数据窗口来说 把数据窗口控件中所选内容剪切到系统剪贴板 语法 dwcontrol.Cut () 参数 dwcontrol 数据窗口控件名

永济市19841614054: c++mfc中的listbox中把选中的多行可以实现复制和黏贴,怎么实现,求大神指导 -
晁卿欣舒: void 对象::OnKeyDown(UINT nChar, UINT nRepCnt, UINT nFlags) { if(nChar==VK_CONTROL) enableCtrl=TRUE; //启用CTRL键 if(flags.CulSel!=NULL&&flags.enableCtrl&&nChar==67){//C键值为67,复制 //遍历listbox找出选中行进行数据复...

永济市19841614054: 属于不同窗口,C++怎么把编辑框中字串的传给另一个编辑框?
晁卿欣舒: 属于不同的窗口,那就申明一个全局的变量作为中间变量就可以了

永济市19841614054: c++编写函数,实现文本文件内容的复制 -
晁卿欣舒: 没空写,该睡觉了,给你个思路1. 读方式打开文件,ifstream infile(文件名,方式)用seekg还是seekp啊,哪个是读的来着,移动文件指针到末尾, 再用对应的tell函数,去除位置(即文件大小),再用read函数一次将这么大的内容读出来(需要将指针移回头部)2.写文件,以写方式打开文件b,把这个buffer用write写进去, 至于输出,都读出来了,cout即可记住关闭文件,第一个按照文件大小申请buffer

永济市19841614054: 怎样用c++把网页上的某几行文字一键复制到excel表的对应位置中?给个思路吧 -
晁卿欣舒: 这个功能不是几个函数就能完成的.要复制一段文字,可以参考金山词霸的做法,不过比较复杂.我的思路是这样的:简化一下,考虑最大限度的兼容大多数程序,最好的办法是通过剪切板来操作,windows下的程序,基本上都支持ctrl+c,所以,可以发送按键消息的相应的程序中,然后从剪切板获取内容,然后通过COM,操作excel.

永济市19841614054: c++中怎么复制文件 -
晁卿欣舒: 用system shell:#include <cstdlib> using namespace std;int main() { system("copy 1.txt C:\\我的文档\\"); }换成windwos.h也可以是因为windows.h中已经包含了C的Run Time Library, 包括system()函数在内, 其实system函数的功能就是...

本站内容来自于网友发表,不代表本站立场,仅表示其个人看法,不对其真实性、正确性、有效性作任何的担保
相关事宜请发邮件给我们
© 星空见康网