0
나는 아래의 코드를 사용하여 붙여 넣기를 복사합니다.하지만 전체 컨텍스트를 복사하지 않고 그냥 문자 몇 개를 복사하고 정크 값으로 남겨 둡니다. if char *를 사용하여 데이터 버퍼를 얻고 변경합니다. 멀티 바이트 지원 프로젝트 설정 ... 그것은 이MFC에서 SetClipboardData를 사용하여 copypaste 할 수 없습니까?
void CCopyPAsteDlg::OnBnClickedPaste()
{
// TODO: Add your control notification handler code here
if (OpenClipboard())
{
if (::IsClipboardFormatAvailable(CF_TEXT)
|| ::IsClipboardFormatAvailable(CF_OEMTEXT))
{
HANDLE hClipboardData = GetClipboardData(CF_TEXT);
LPCTSTR pchData = new TCHAR[256];
pchData = (LPCTSTR)GlobalLock(hClipboardData);
CString strFromClipboard = pchData;
m_SetText.SetWindowText(strFromClipboard);
GlobalUnlock(hClipboardData);
}
else
{
//AfxMessageBox(L"There is no text (ANSI) data on the Clipboard.");
}
CloseClipboard();
}
}
void CCopyPAsteDlg::OnBnClickedCopy()
{
// TODO: Add your control notification handler code here
UpdateData();
CString strData;
m_GetText.GetWindowText(strData);
if (OpenClipboard())
{
EmptyClipboard();
HGLOBAL hClipboardData;
hClipboardData = GlobalAlloc(GMEM_DDESHARE,
strData.GetLength()+1);
LPCTSTR pchData = new TCHAR[256];
pchData = (LPCTSTR)GlobalLock(hClipboardData);
wcscpy((wchar_t*)pchData,strData);
GlobalUnlock(hClipboardData);
SetClipboardData(CF_TEXT,hClipboardData);
CloseClipboard();
}
}
'CF_UNICODETEXT' 이후'sizeof (WCHAR)'이어야한다고 생각합니다. – jww