다음을 통해 공유


CWnd::OpenClipboard

클립보드를 엽니다.

BOOL OpenClipboard( );

반환 값

클립보드를 통해 연 경우 0이 아닌 CWnd, 또는 다른 응용 프로그램 또는 창 클립보드에 있는 경우 0을 엽니다.

설명

다른 응용 프로그램이 클립보드까지 수정할 수 있는 CloseClipboard Windows 함수를 호출 합니다.

현재 CWnd 클립보드까지 소유자 개체 바뀝니다는 EmptyClipboard Windows 함수를 호출 합니다.

예제

//handler for Edit | Copy menu
void CMdiView::OnEditCopy()
{
   if (!OpenClipboard())
   {
      AfxMessageBox(_T("Cannot open the Clipboard"));
      return;
   }
   // Remove the current Clipboard contents  
   if(!EmptyClipboard())
   {
      AfxMessageBox(_T("Cannot empty the Clipboard"));
      return;  
   }

   // Get the currently selected data, hData handle to 
   // global memory of data
   CString str;
   m_Edit.GetWindowText(str);
   size_t cbStr = (str.GetLength() + 1) * sizeof(TCHAR);
   HGLOBAL hData = GlobalAlloc(GMEM_MOVEABLE, cbStr);
   memcpy_s(GlobalLock(hData), cbStr, str.LockBuffer(), cbStr);
   GlobalUnlock(hData);
   str.UnlockBuffer();

   // For the appropriate data formats...
   UINT uiFormat = (sizeof(TCHAR) == sizeof(WCHAR)) ? CF_UNICODETEXT : CF_TEXT;
   if (::SetClipboardData(uiFormat, hData) == NULL)  
   {
      AfxMessageBox(_T("Unable to set Clipboard data"));    
      CloseClipboard();
      return;  
   }  

   CloseClipboard();
}

요구 사항

헤더: afxwin.h

참고 항목

참조

CWnd 클래스

계층 구조 차트

CloseClipboard

EmptyClipboard

OpenClipboard