MFC обеспечивает быстрый способ бросить текст на буфер обмена?

add-to-clip-board кодируют, мы имеем в нашей кодовой базе, довольно низкий уровень - выделяющий глобальную память и так далее. Для простого случая я просто хочу поместить некоторый простой текст на буфер обмена, есть ли какие-либо стандартные программы, которые могут перенести все это?

Пример - то, что CRichEditCtrl имеет Копию () и Сокращение () методы, которые автоматически помещают текущий выбор на буфер обмена. MFC делает этот вид функциональности доступным в изоляции?

Обновление: Созданный новый вопрос на основе ответа mwigdahl

7
задан Community 23 May 2017 в 12:24
поделиться

1 ответ

Нет, но завернуть самому не так уж и сложно. Адаптировано из Frost Code (и не проверено):

void SetClipboardText(CString & szData)
{
    HGLOBAL h;
    LPTSTR arr;

    h=GlobalAlloc(GMEM_MOVEABLE, szData.GetLength()+1);
    arr=(LPTSTR)GlobalLock(h);
    strcpy_s((char*)arr, szData.GetLength()+1, szData.GetBuffer());
    szData.ReleaseBuffer();
    GlobalUnlock(h);

    ::OpenClipboard (NULL);
    EmptyClipboard();
    SetClipboardData(CF_TEXT, h);
    CloseClipboard();
}
6
ответ дан 7 December 2019 в 10:01
поделиться
Другие вопросы по тегам:

Похожие вопросы: