Задания для самостоятельного выполнения
Задание 1.
В среде Visual C++6.0 создайте проект ClpBdTxt – приложение, позволяющее помещать в буфер обмена текст, введенный в многострочное поле ввода, и считывать текст из буфера обмена в многострочное поле ввода своего диалогового окна. Для помещения текста в буфер обмена и считывания текста из буфера обмена создайте необходимые кнопки. Запустите два экземпляра приложения. В многострочное поле ввода первого приложения введите текст и поместите его в буфер обмена. Считайте из буфера обмена введенный текст в многострочное поле ввода второго приложения. Обменяйтесь текстом с приложением Блокнот.
Сравните Ваше решение с имеющимся вариантом выполнения. Видоизмените приложение следующим образом.
Уберите многострочное поле ввода и добавьте два однострочных поля ввода. Разработайте необходимый код для обмена содержимым полей ввода между экземплярами этого приложения. Добейтесь, чтобы приложение игнорировало текст, помещенный в буфер обмена другими приложениями (зарегистрируйте собственный формат данных, используя в качестве имени имя приложения, см. функцию RegisterClipboardFormat).
Задание 2.
В среде Visual C++6.0 создайте проект ClpBdBtm – приложение, позволяющее рисовать закрашенный прямоугольник в области вывода рисунка диалогового окна приложения по координатам его левого верхнего угла, ширине и высоте, и значениям интенсивностей RGB цвета, вводимым в соответствующие поля ввода. Приложение должно копировать и вырезать в буфер обмена битовый образ своего рисунка, а также копировать из буфера обмена битовый образ рисунка в область вывода рисунка своего диалогового окна при нажатии на соответствующие кнопки. Запустите два экземпляра приложения. В первом экземпляре приложения нарисуйте прямоугольник и скопируйте (или вырежьте) его в буфер обмена. Во втором экземпляре приложении скопируйте битовый образ рисунка из буфера обмена в область вывода рисунка его диалогового окна. Осуществите обмен рисунками с приложением MS Paint.
Сравните Ваше решение с имеющимся вариантом выполнения. Видоизмените приложение следующим образом.
Добавьте линейки прокрутки для области вывода рисунка и обеспечьте необходимую функциональность.
Задание 3.
В среде Visual C++6.0 создайте проект ClipViewer – приложение – простейший просмотрщик буфера обмена. Ограничьтесь только текстовым типом просматриваемых данных. Приложение должно автоматически отображать в своем окне помещенный в буфер обмена в текущий момент времени текст.
Сравните Ваше решение с имеющимся вариантом выполнения. Видоизмените приложение следующим образом.
Добавьте просмотр графики.
Задание 4.
Используя результаты выполнения предыдущих заданий, в среде Visual C++6.0 создайте 2 проекта SndToClp и RcvFromClp. Приложение отправляет в буфер обмена два операнда и код операции над ними: сложить, вычесть, разделить. Приложение RcvFromClp работает как просмотрщик буфера обмена, выполняет операцию над операндами и отображает результат.
Контрольные вопросы
-
Какие механизмы обмена данными между приложениями используются в Windows?
-
Какие стандартные форматы буфера обмена поддерживает Windows?
-
Какие основные функции по управлению буфером обмена поддерживает Win32 API?
-
Какой последовательностью вызовов функций Win32 API реализуется помещение данных в буфер обмена?
-
Какой последовательностью вызовов функций Win32 API реализуется доступ к данным буфера обмена?
