Text in Zwischenablage kopieren
-
Ich bins nochmal. Habe ein einfaches MFC mit Dialog Feld. Und möchte nun einen Text in die Zwischenablage kopieren!
Aus der MSDN bin ich irgendwie nicht schlau geworden, weil das zu allgemein gehalten ist und ich die Erfahrung dafür noch nicht habe.m_strText = "Hallo ich will in die Zwischenablage"; OpenClipboard(); SetClipboardData(); CloseClipboard();
Das hier habe ich schon teilweise gefunden! Weiß aber nicht genau wie ich den Text da unterbringen soll, sodass er mir den in die Zwischenablage kopiert?
Danke für Antworten!
-
-
Ja wie gesagt bei der MSDN steht viel Code aber ich möchte nur Wissen wie ich den Text in die Zwischenablage kopieren wenn ich auf einem Button klicke! Ich möchte dsa nicht in ein Menu einbauchen oder so!
-
if( OpenClipboard() ) { EmptyClipboard(); TCHAR szText[] = _T( "mein Text im Clipboard" ); size_t len = lstrlen( szText ); HGLOBAL hGlobal = GlobalAlloc( GMEM_MOVEABLE, (len + 1) * sizeof( TCHAR )); if( hGlobal ) { LPTSTR lpstr = (LPTSTR)GlobalLock( hGlobal ); lstrcpy( lpstr, szText ); GlobalUnlock( hGlobal ); #ifdef UNICODE #define TEXTTYPE CF_UNICODETEXT #else #define TEXTTYPE CF_TEXT #endif SetClipboardData( TEXTTYPE, hGlobal ); } CloseClipboard(); }
-
jo danke das Funktioniert!
Habe aber noch eine Frage:
Wieso bekomme ich ne Fehlermedlung wenn ich den Text durch eine Variable ersetzte?m_strText = "In die Zwischenablage"; if( OpenClipboard() ) { EmptyClipboard(); TCHAR szText[] = m_strText; //Hier habe ich den Fehler size_t len = lstrlen( szText ); HGLOBAL hGlobal = GlobalAlloc( GMEM_MOVEABLE, (len + 1) * sizeof( TCHAR )); if( hGlobal ) { LPTSTR lpstr = (LPTSTR)GlobalLock( hGlobal ); lstrcpy( lpstr, szText ); GlobalUnlock( hGlobal ); #ifdef UNICODE #define TEXTTYPE CF_UNICODETEXT #else #define TEXTTYPE CF_TEXT #endif SetClipboardData( TEXTTYPE, hGlobal ); } CloseClipboard(); }
Dann bekomme ich ne Fhelermeldung
error C2440: 'Initialisierung': 'CString' kann nicht in 'TCHAR []' konvertiert werden Kein benutzerdefinierter Konvertierungsoperator verfügbar, der diese Konvertierung durchführen kann, oder der Operator kann nicht aufgerufen werden
-
lass die Zeile weg und ersetzt szText durch m_strText...