Форум программистов
 

Восстановите пароль или Зарегистрируйтесь на форуме, о проблемах и с заказом рекламы пишите сюда - alarforum@yandex.ru, проверяйте папку спам!

Вернуться   Форум программистов > C/C++ программирование > Общие вопросы C/C++
Регистрация

Восстановить пароль

Купить рекламу на форуме - 42 тыс руб за месяц

Ответ
 
Опции темы Поиск в этой теме
Старый 05.08.2009, 00:11   #1
АлексейМк
Новичок
Джуниор
 
Регистрация: 13.06.2009
Сообщений: 2
По умолчанию Работа с буфером обмена

Подскажите как копировать-вставлять в С из/в буфер обмена
АлексейМк вне форума Ответить с цитированием
Старый 05.08.2009, 00:24   #2
bondik
Форумчанин
 
Регистрация: 24.04.2008
Сообщений: 300
По умолчанию

Писал не я,а автору топика советую учиться пользоваться гуглом
Цитата:
Действия Буфера обмена

Окно должно использовать буфер обмена при вырезке, копировании или вставке данных. Окно помещает данные в буфер обмена для действий вырезки и копирования и возвращает обратно данные из буфера обмена для операций вставки. Следующие разделы описывают эти действия и связанные с этим проблемы.

Чтобы поместить данные в буфер обмена или извлечь данные из него, окно должно сначала открыть буфер обмена, используя функцию OpenClipboard. Одновременно только одно окно может иметь открытым буфер обмена. Чтобы выяснить, какое окно имеет открытый буфер обмена, вызовите функцию GetOpenClipboardWindow. Когда окно закончит работу, оно должно закрыть буфер обмена, вызвав функцию CloseClipboard.
Операции Вырезать (Cut) и Копировать (Copy)

Чтобы поместить информацию в буфер обмена, окно сначала очищает его от любого предыдущего содержания, используя функцию EmptyClipboard. Эта функция посылает сообщение WM_DESTROYCLIPBOARD предыдущему владельцу буфера обмена, освобождает ресурсы, связанные с данными в буфере обмена и передает в монопольное использование буфер обмена окну, которое имеет открытый буфер обмена. Чтобы выяснить, какое окно владеет буфером обмена, вызовите функцию GetClipboardOwner.

После очистки буфера обмена, окно помещает данные в него в стольких форматах, сколько это возможно, упорядоченных от наиболее квалифицирующего формата буфера обмена до наименее квалифицирующего. Для каждого формата, окно вызывает функцию SetClipboardData, устанавливая идентификатор формата и глобальный дескриптор памяти. Дескриптор памяти может быть НОЛЬ (NULL), указывая, что окно показывает данные по запросу. Для получения дополнительной информации, см. Отсроченная запись.
Операция Вставить (Paste)

Чтобы извлечь вставляемую информацию из буфера обмена, окно сначала определяет формат буфера обмена, который извлекает информацию. Как правило, окно перечисляет доступные форматы буфера обмена, используя функцию EnumClipboardFormats, и применяет первый формат, который он распознает. Этим способом выбирается самый лучший доступный формат в соответствии с набором приоритетов, когда данные были помещены в буфер обмена.

Альтернативно, окно может использовать функцию GetPriorityClipboardFormat. Эта функция идентифицирует самый лучший доступный формат буфера обмена согласно заданному приоритету. Окно, которое распознает только один формат буфера обмена, может просто определить, является ли этот формат доступным, используя функцию IsClipboardFormatAvailable.

После определения формата буфера обмена, чтобы использовать его, окно вызывает функцию GetClipboardData. Эта функция возвращает значение дескриптора глобального объекта памяти, содержащего данные в заданном формате. Окно может на короткое время блокировать объект памяти с целью проверки или копирования данных. Однако окно не должно освобождать объект или оставаться блокированным в течение длительного периода времени.
bondik вне форума Ответить с цитированием
Ответ


Купить рекламу на форуме - 42 тыс руб за месяц



Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Резидентная программа. Работа с буфером клавиатуры Vohakisa Assembler - Ассемблер (FASM, MASM, WASM, NASM, GoASM, Gas, RosAsm, HLA) и не рекомендуем TASM 4 21.06.2009 00:16
Буфер обмена nusik Общие вопросы Delphi 2 21.05.2009 00:53
буфер обмена __@cmd@__ Общие вопросы Delphi 2 04.02.2009 12:24
Работа с буфером обмена(win) NikLik Общие вопросы Delphi 6 24.06.2008 00:59
работа с буфером данных alexs2141 Общие вопросы C/C++ 5 06.06.2008 12:45