Многочисленность форматов буфера обмена


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

Форматы буфера обмена, которые содержат самую большую информацию (описание форматирования текста), должны помещаться в начале буфера обмена, сопровождаемые менее информативными форматами. Окно, вставляющее информацию из буфера обмена обычно извлекает объект буфера обмена в первом формате, который оно распознает. Поскольку форматы буфера перечисляются в порядке, в котором они помещаются в буфер обмена, первый распознанный формат также является и самым информативным.

Например, предположим, что пользователь копирует стилизованный текст из документа текстового процессора. Окно, содержащее документ должно сначала поместить данные  в буфер обмена в зарегистрированном формате, таком как RTF. Впоследствии, окно помещает  данные в буфер обмена в менее информативном формате, таком как текст (CF_TEXT).

Когда содержание буфера обмена вставляется в другое окно, окно извлекает данные  в самом информативном формате, который он распознает. Если окно распознает RTF, соответствующие данные вставляются в документ. В противном случае, в документ вставляются текстовые данные, а информация о форматировании теста утрачивается.

Назад в оглавление темы
На главную страницу темы

Hosted by uCoz