CString source
//put your text in source
if(OpenClipboard())
{
HGLOBAL clipbuffer
char * buffer
EmptyClipboard()
clipbuffer = GlobalAlloc(GMEM_DDESHARE, source.GetLength()+1)
buffer = (char*)GlobalLock(clipbuffer)
strcpy(buffer, LPCSTR(source))
GlobalUnlock(clipbuffer)
SetClipboardData(CF_TEXT,clipbuffer)
CloseClipboard()
}
从剪接板上获取文本御巧:
char * buffer
if(OpenClipboard())
{
buffer = (char*)GetClipboardData(CF_TEXT)
//do something with buffer here
//before it goes out of scope
}
CloseClipboard()
如果你要调WINSER.H中的OpenClipboard( HWND hWndNewOwner)你应该加上作用域察迅,及这样写::OpenClipboard( m_hwnd) 。
如果你要行没颤调档败用AFXWIN.H中的OpenClipboard。
你就直接这样写: m_hwnd.OpenClipboard()。
永远不要修改系统的头文件。
失败原顷扰因:
一般是与系统安装的软件产生冲突所致慎颤。
解决方法:
关闭所有外在软件,再进行测试。
如果以前能用,那么可能不注意删除了一些文件,直接点安装文件,选择修复即可。
如果没有得到解决建议卸载干净以后重装。宽乎败
openclipboard:如果一个应用程序调用OpenClipboard,HWND设置为NULL,EmptyClipboard设置剪贴板所有者为NULL,这会导致SetClipboardData失败。
参考资料
百度文库:https://wenku.baidu.com/view/d566ed82a76e58fafbb0033f.html
欢迎分享,转载请注明来源:内存溢出
评论列表(0条)