VC++(VS2013)剪贴板的使用
void CMFCSendMessageDlg::OnBnClickedButton4()
{
// 窗口控件:IDC_EDIT1, IDC_EDIT2,
// 对应的值:m_editValueSend, m_editValueGet
//DDX_Text(pDX, IDC_EDIT1, m_editValueSend);
//DDX_Text(pDX, IDC_EDIT2, m_editValueGet);
//CString m_editValueSend;
//CString m_editValueGet;
UpdateData(true);
m_editValueSend.GetBuffer();
OpenClipboard();
EmptyClipboard();
m_editValueSend.ReleaseBuffer();
int nLen = (m_editValueSend.GetLength() + 1) *sizeof(WORD);
HANDLE hclip = GlobalAlloc(GMEM_MOVEABLE, nLen);
char *pBuf = (char *)GlobalLock(hclip);
memcpy(pBuf, (char *)m_editValueSend.GetBuffer(), nLen);
//SetClipboardData是把指定数据按照指定格式放入剪切板中CF_UNICODETEXT CF_TEXT
SetClipboardData(CF_UNICODETEXT, hclip);
GlobalUnlock( hclip );
CloseClipboard();
if (!IsClipboardFormatAvailable(CF_UNICODETEXT))
return;
if (!OpenClipboard())
return;
HGLOBAL hglb = GetClipboardData(CF_UNICODETEXT);
LPCTSTR lptstr = (LPCTSTR)GlobalLock(hglb);
if (lptstr != NULL){
m_editValueGet = lptstr;
UpdateData(false);
}
GlobalUnlock(hglb);
CloseClipboard();
return;
}