MFC C++ split函数切割字符串示例 获取/设置剪贴板内容

 

//src要分割的字符串,splitChar分割符  返回列表
vector<CString> split(CString src,CString splitChar)
{
	vector<CString> outList;
	int pos = 0;
	while (true){
		CString token = src.Tokenize(_T(splitChar), pos);
		if (token.IsEmpty()) { break; }
		outList.push_back(token);
	}
	return outList;
}

void PrintAllDlg::OnBnClickedButtonGetdata2()
{	
	//打开剪贴板
	CString fromClipboard="";
	if (OpenClipboard())
	{
		//char * buffer = NULL;
		HANDLE hData = GetClipboardData(CF_TEXT);//文本
		char * buffer = (char*)GlobalLock(hData);
		fromClipboard = buffer;
		GlobalUnlock(hData);
		CloseClipboard();
	}
	if (fromClipboard.GetLength() > 0)
	{
		ShowInfo("剪贴板内容:\r\n"+ fromClipboard);
		vector<CString> list = split(fromClipboard, "\r\n");
		if (list.size() >= 3)
		{
			GetDlgItem(IDC_EDIT_SNsn)->SetWindowText(list[0]);
			GetDlgItem(IDC_EDIT_IMEI1)->SetWindowText(list[1]);
			GetDlgItem(IDC_EDIT_IMEI2)->SetWindowText(list[2]);
		}
		list.~vector();
	}
	else { ShowInfo("无文本内容"); }
}

#清空剪切板
cmd /c "echo off | clip"

C++

CString getClipboard()
{
    //打开剪贴板
	CString fromClipboard="";
	if (OpenClipboard())
	{
		//char * buffer = NULL;
		HANDLE hData = GetClipboardData(CF_TEXT);//文本
		char * buffer = (char*)GlobalLock(hData);
		fromClipboard = buffer;
		GlobalUnlock(hData);
		CloseClipboard();
	}
    return fromClipboard;
}

void SetClipboard(CString content)
{	
	HGLOBAL hMemBin = NULL;
	PCHAR   LockBin = NULL;
	OpenClipboard(NULL);
	EmptyClipboard();
	hMemBin = GlobalAlloc(GMEM_MOVEABLE, content.GetLength() + 1);
	LockBin = (PCHAR)GlobalLock(hMemBin);
	RtlMoveMemory(LockBin, content.GetBuffer(), content.GetLength() + 1);
	GlobalUnlock(hMemBin);
	LockBin = NULL;
	SetClipboardData(CF_TEXT, hMemBin);
	CloseClipboard();
}

 

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

小黄人软件

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值