MFC/MFC 코드기록
클립보드에 문자열 복사하기 (문자열 복사 / ctrl + c)
lwj789
2023. 2. 20. 18:18
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 | //-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ void WJ_EditControl::CopyTextA(CStringA a_str) { int len = a_str.GetLength(); HGLOBAL ClipData = ::GlobalAlloc(GHND, len); char *lpClip = (char *) ::GlobalLock(ClipData); memcpy(lpClip, a_str.GetBuffer(), len); ::GlobalUnlock(ClipData); ::OpenClipboard(GetSafeHwnd()); ::EmptyClipboard(); ::SetClipboardData(CF_TEXT, ClipData); ::CloseClipboard(); } //-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ void WJ_EditControl::CopyTextW(CString a_str) { int len = a_str.GetLength() << 1; char *aStr = (char *)malloc(len); memset(aStr, 0x00, len); UnicodeToAscii(a_str.GetBuffer(), aStr); HGLOBAL ClipData = ::GlobalAlloc(GHND, len); char *lpClip = (char *)::GlobalLock(ClipData); memcpy(lpClip, aStr, len); ::GlobalUnlock(ClipData); ::OpenClipboard(GetSafeHwnd()); ::EmptyClipboard(); ::SetClipboardData(CF_TEXT, ClipData); ::CloseClipboard(); free(aStr); } | cs |