Avatar billede cyt Nybegynder
28. august 2001 - 10:07 Der er 1 kommentar og
1 løsning

Passing af CString til clipboardet i MSVC++

Fra en hjælpefil vedr. CF_TEXT formatet står der i bunden:

\"If you assign a String object to the Clipboard, WFC performs the conversion to the Win32 text Clipboard format for you.\"

Det er jo fint. Men hvordan gør man så det? Jeg kan ikke lige finde noget i hjælpen om det.

Avatar billede jpk Nybegynder
28. august 2001 - 10:13 #1
Noget lign.

void CMyView::OnEditCopy()
{
  if ( !OpenClipboard() )
  {
    AfxMessageBox( \"Cannot open the Clipboard\" );
    return;
  }
  // Remove the current Clipboard contents
  if( !EmptyClipboard() )
  {
    AfxMessageBox( \"Cannot empty the Clipboard\" );
    return;
  }
  // ...
  // Get the currently selected data
  // ...
  // For the appropriate data formats...
  if ( ::SetClipboardData(CF_TEXT , hData ) == NULL )
  {
    AfxMessageBox( \"Unable to set Clipboard data\" );
    CloseClipboard();
    return;
  }
  // ...
  CloseClipboard();
}
Avatar billede cyt Nybegynder
28. august 2001 - 10:37 #2
Ikke rigtigt... For det er netop det, som hData indeholder, jeg leder efter... Jeg fandt følgende på codeguru (lækkert site :-))


    CString sText = _T(\"copy text to clipboard\");
    char *pText;
   
    pText = sText.GetBuffer(sText.GetLength());

    if (OpenClipboard())
    {
        HGLOBAL ClipBuffer;
        char *pBuffer;
        EmptyClipboard();
        ClipBuffer = GlobalAlloc(GMEM_DDESHARE, strlen(pText) + 1);
        pBuffer = (char *)GlobalLock(ClipBuffer);
        strcpy(pBuffer, pText);
        GlobalUnlock(ClipBuffer);
        setClipboardData(CF_TEXT, ClipBuffer);
        CloseClipboard();
        sText.ReleaseBuffer();
    }
Avatar billede Ny bruger Nybegynder

Din løsning...

Tilladte BB-code-tags: [b]fed[/b] [i]kursiv[/i] [u]understreget[/u] Web- og emailadresser omdannes automatisk til links. Der sættes "nofollow" på alle links.

Loading billede Opret Preview
Kategori
Kurser inden for grundlæggende programmering

Log ind eller opret profil

Hov!

For at kunne deltage på Computerworld Eksperten skal du være logget ind.

Det er heldigvis nemt at oprette en bruger: Det tager to minutter og du kan vælge at bruge enten e-mail, Facebook eller Google som login.

Du kan også logge ind via nedenstående tjenester