CWnd::OpenClipboard
Öffnet die Zwischenablage.
BOOL OpenClipboard( );
Rückgabewert
Ungleich 0 (null), wenn die Zwischenablage über CWnd geöffnet ist oder 0, wenn eine andere Anwendung oder Fenster die geöffnete Zwischenablage verfügt.
Hinweise
Andere Anwendungen sind nicht in der Lage, die Zwischenablage zu ändern, bis die CloseClipboard Windows-Funktion aufgerufen wurde.
Das aktuelle Objekt CWnd wird nicht der Besitzer der Zwischenablage, bis die EmptyClipboard Windows-Funktion aufgerufen wurde.
Beispiel
//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();
}
Anforderungen
Header: afxwin.h