System - zwischenablage, speicher, strg c



  • Wie kann ich was aus meinem programm raus kopieren das ich es woanderst mit strg v einsetzen kann also in die zwichenablage ?



  • @Spliff

    Ich hoffe Du meinst damit nicht (mit Deiner Erklärung), daß Du mit der Maus irgendwo auf dem Desktop was selektieren willst, dann einen Button in Deinem Programm drücken willst der dann den selektierten Text in die Zwischenablage befördert ??? images/smiles/icon_eek.gif

    Ich hätte einen Lösungsansatz wie Du in Deinem Programm was in die Zwischenablage schreiben kannst. Das sollte eigentlich so funktionieren :

    CString text_to_clipboard; //In dieser Variable sollte Dein Text stehen den Du in die Zwischenablage befördern willst
    
    if(OpenClipboard())
    {
       HGLOBAL clipboardbuffer;
       char * buffer;
       EmptyClipboard();
       clipboardbuffer = GlobalAlloc(GMEM_DDESHARE, text_to_clipboard.GetLength()+1);
       buffer = (char*)GlobalLock(clipboardbuffer);
       strcpy(buffer, LPCSTR(text_to_clipboard));
       GlobalUnlock(clipboardbuffer);
       SetClipboardData(CF_TEXT,clipboardbuffer);
       CloseClipboard();
    }
    

    Die elementaren Funktionen für "spielen" mit dem ClipBoard sind :

    OpenClipboard();
    EmptyClipboard();
    SetClipboardData();
    CloseClipboard();

    Falls Du selber noch ein wenig spielen willst images/smiles/icon_biggrin.gif

    MfG veganza

    [ Dieser Beitrag wurde am 06.01.2002 um 14:37 Uhr von veganza editiert. ]



  • Hi veganza

    das war genau das was ich wollte werde mich gleich dran setzetn danke für den guten ausführlichen post images/smiles/icon_smile.gif .



  • Kein Problem... für sowas ist ja ein Board wie dieses da !!!

    Um das Thema ClipBoard zu komplettieren (und vielleicht auch einmal in den MFC-FAQ zu kommen... HALLO dEUs images/smiles/icon_biggrin.gif ) möchte ich hier noch schnell posten wie man das STRG-V also das Auslesen des ClipBoards realisieren kann :

    char * buffer;
    if(OpenClipboard())
    {
            buffer = (char*)GetClipboardData(CF_TEXT); //Enthält jetzt den Inhalt des ClipBoards
    }
    CloseClipboard();
    

    MfG veganza



  • Mist so schnell kann es passieren... jetzt war ich noch unter meinem alten NIK angemeldet !!!
    Wollte mal schauen ob der noch funktioniert, daß war bevor Sven Hannawald die 4-Schanzen-Tournee per Grand Slam gewonnen hat.

    MfG veganza images/smiles/icon_biggrin.gif



  • is das jetzt vollständig?
    ich verschiebs heute abend. falls ichs vergessen sollte, bitte melden.



  • @dEUs

    Alles gesagt was gesagt werden muß...

    MfG veganza


Anmelden zum Antworten