티스토리 뷰
.h 파일에 아래 함수 선언
int CopyTextToClipboard(const char *ap_string);
.cpp에 아래 코드 작성
// 복사 코드
CString strTemp = _T("test");
const char* convertMsg;
CT2A ascii(strTemp, CP_UTF8);
convertMsg = ascii.m_psz;
CopyTextToClipboard(convertMsg);
// 복사 함수
int CTestDlg::CopyTextToClipboard(const char *ap_string)
{
// 저장할 문자열의 길이를 구한다. ('\0'까지 포함한 크기)
int string_length = strlen(ap_string) + 1;
// 클립보드로 문자열을 복사하기 위하여 메모리를 할당한다.
// 클립보드에는 핸들을 넣는 형식이라서 HeapAlloc 함수 사용이 블가능하다.
HANDLE h_data = ::GlobalAlloc(GMEM_DDESHARE | GMEM_MOVEABLE, string_length);
// 할당된 메모리에 문자열을 복사하기 위해서 사용 가능한 주소를 얻는다.
char *p_data = (char *)::GlobalLock(h_data);
if (NULL != p_data)
{
// 할당된 메모리 영역에 삽입할 문자열을 복사한다.
memcpy(p_data, ap_string, string_length);
// 문자열을 복사하기 위해서 Lock 했던 메모리를 해제한다.
::GlobalUnlock(h_data);
if (::OpenClipboard(m_hWnd))
{
::EmptyClipboard(); // 클립보드를 연다.
::SetClipboardData(CF_TEXT, h_data); // 클립보드에 저장된 기존 문자열을 삭제한다.
// 클립보드로 문자열을 복사한다.
::CloseClipboard(); // 클립보드를 닫는다.
}
}
return 0;
}
'프로그래밍 > MFC & C++ & API' 카테고리의 다른 글
| [MFC] CString 문자열 공백 지우기 (1) | 2018.06.28 |
|---|
- Total
- Today
- Yesterday
- 백신
- 바이러스
- 소프트웨어
- 재생
- 피디에스박스
- ai
- mp3
- 악성코드
- 플랫폼
- CES2026
- 도서창작
- 글쓰기트렌드
- 최적화
- 공간스타일링
- 스마트홈
- 프로그램
- 음성
- Android
- 동영상
- 코딩
- 다운로드
- 리빙스타일
- 인비저블테크
- 금융
- 프로그래밍
- 안드로이드
- 개발
- 영상
- 통화
- 메신저
| 일 | 월 | 화 | 수 | 목 | 금 | 토 |
|---|---|---|---|---|---|---|
| 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 |
