CListCtrl 에 선택된 항목을 클립보드로 복사해서 다른곳으로 복사 해야 할경우가 있다.
이것을 처리 하기 위해서는 리스트 컨트롤 선택된 항목을 원하는 형태로 데이터를 모은후
아래 코드를 적용해 클립보드로 복사 할수 있다.
// sCopyData 는 실제로 리스트 컨트롤에서 클립보드로 복사할 데이터를 모은 데이터.
if (m_ListCtlResult.OpenClipboard())// 리스트 컨트롤에 클립보드 오픈.
{
EmptyClipboard();
int nLen = sCopyData.GetLength() * sizeof(WCHAR) + 2;
HGLOBAL hGlobal = GlobalAlloc(GMEM_MOVEABLE | GMEM_DDESHARE, nLen);
LPBYTE pGlobalData = (LPBYTE)GlobalLock(hGlobal);
USES_CONVERSION_EX;
CopyMemory(pGlobalData, T2CW_EX(sCopyData, _ATL_SAFE_ALLOCA_DEF_THRESHOLD), nLen);
SetClipboardData(CF_UNICODETEXT, hGlobal);
GlobalUnlock(hGlobal);
GlobalFree(hGlobal);
CloseClipboard();
}
else
{
AfxMessageBox("복사되지 않았습니다.");
return;
}
댓글 없음:
댓글 쓰기