c++实现修改剪贴板
如题,有一串不定长度的字符串,如何通过程序将其复制到剪贴板中,使程序结束时粘贴即可得到该字符串。头文件、调用函数越少越好,必须是c++,...
如题,有一串不定长度的字符串,如何通过程序将其复制到剪贴板中,使程序结束时粘贴即可得到该字符串。头文件、调用函数越少越好,必须是c++,
展开
2个回答
展开全部
if (!OpenClipboard(m_hParentWnd))
return;
tstring selStr; // 注意 selStr 是你要复制到剪切板的字符串, 这里只做 声明用
int nCount = selStr.size();
HGLOBAL hGlobalMem = GlobalAlloc(GMEM_MOVEABLE, (nCount+1)*sizeof(TCHAR));
if (!hGlobalMem)
{
CloseClipboard();
return;
}
EmptyClipboard();
LPTSTR lpszStr= (LPTSTR)GlobalLock(hGlobalMem);
memcpy(lpszStr, selStr.c_str(), nCount* sizeof(TCHAR));
lpszStr[nCount] = (TCHAR) 0;
GlobalUnlock(hGlobalMem);
#ifdef UNICODE
SetClipboardData(CF_UNICODETEXT, hGlobalMem);
#else
SetClipboardData(CF_TEXT, hGlobalMem);
#endif
CloseClipboard();
return;
tstring selStr; // 注意 selStr 是你要复制到剪切板的字符串, 这里只做 声明用
int nCount = selStr.size();
HGLOBAL hGlobalMem = GlobalAlloc(GMEM_MOVEABLE, (nCount+1)*sizeof(TCHAR));
if (!hGlobalMem)
{
CloseClipboard();
return;
}
EmptyClipboard();
LPTSTR lpszStr= (LPTSTR)GlobalLock(hGlobalMem);
memcpy(lpszStr, selStr.c_str(), nCount* sizeof(TCHAR));
lpszStr[nCount] = (TCHAR) 0;
GlobalUnlock(hGlobalMem);
#ifdef UNICODE
SetClipboardData(CF_UNICODETEXT, hGlobalMem);
#else
SetClipboardData(CF_TEXT, hGlobalMem);
#endif
CloseClipboard();
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询