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
|
int CopyTextFromClipboard(CString *ap_string)
{
unsigned int priority_list = CF_TEXT;
HANDLE h_clipboard_data;
char *p_clipboard_data;
int format_info = ::GetPriorityClipboardFormat(&priority_list, 1), len = 0;
if (format_info == CF_TEXT) { // 클립보드에 저장된 정보가 텍스트 인경우에만 처리한다.
// 클립보드에 있는 비트맵 정보를 얻기 위해서 클립보드를 연다.
if (::OpenClipboard(m_hWnd)) { // 클립보드를 연다.
// 클립보드에 저장된 정보의 핸들을 얻는다.
h_clipboard_data = ::GetClipboardData(format_info);
if (h_clipboard_data != NULL) { // 정보를 정상적으로 얻었다면
// 클립보드에 저장된 문자열를 복사하기 위해 클립보드 핸들을 사용하여
// 문자열이 저장된 메모리의 주소를 얻는다.
p_clipboard_data = (char *)::GlobalLock(h_clipboard_data);
// 클립보드에 저장된 문자열의 길이를 얻는다.
len = strlen(p_clipboard_data);
*ap_string = p_clipboard_data;
// 클립보드에 저장된 데이터 핸들을 다른 프로세스가 사용할 수 있도록 반환한다.
::GlobalUnlock(h_clipboard_data);
}
::CloseClipboard(); // 클립보드를 닫는다.
}
}
return len; // 복사한 데이터의 크기를 반환한다.
}
|
cs |
'MFC > MFC 코드기록' 카테고리의 다른 글
IME 입력 상태(한글 모드)에서 Virtual-key code 읽기 (0) | 2023.02.21 |
---|---|
클립보드에 문자열 복사하기 (문자열 복사 / ctrl + c) (0) | 2023.02.20 |
한/영 하는 코드 (0) | 2023.02.17 |
문자열의 높이와 폭 구하기. (0) | 2023.02.17 |
MFC 윈도우 프로그램 창 활성화 시키기 (0) | 2023.02.08 |