Студопедия
Случайная страница | ТОМ-1 | ТОМ-2 | ТОМ-3
АвтомобилиАстрономияБиологияГеографияДом и садДругие языкиДругоеИнформатика
ИсторияКультураЛитератураЛогикаМатематикаМедицинаМеталлургияМеханика
ОбразованиеОхрана трудаПедагогикаПолитикаПравоПсихологияРелигияРиторика
СоциологияСпортСтроительствоТехнологияТуризмФизикаФилософияФинансы
ХимияЧерчениеЭкологияЭкономикаЭлектроника

Оценка результатов.

Читайте также:
  1. I.V. Оценка функционального состояния пациента
  2. III. Оценка выполнения требований стандарта
  3. IV.Оценка альтернатив и поиск решений.
  4. V. Место осуществления, строительная площадка и экологическая оценка
  5. VIII. ОЦЕНКА КАЧЕСТВА ОСВОЕНИЯ ОСНОВНЫХ ОБРАЗОВАТЕЛЬНЫХ ПРОГРАММ МАГИСТРАТУРЫ
  6. X. Финансовая оценка
  7. АНАЛИЗ И ОЦЕНКА КОНЦЕПЦИЙ ЗАЩИТЫ ПРОЦЕССОВ ПЕРЕРАБОТКИ ИНФОРМАЦИИ

ОБЪЕКТНО-ОРИЕНТИРОВАННОЕ ПРОГРАММИРОВАНИЕ

Лабораторная работа №8

Цель. Получение навыков разработки приложений на языке программирования С++ в системе программирования RAD (Rapid Application Development) Studio for Microsoft Windows.

Тема. Обработка сообщений Windows.

Описание приложения. Приложение состоит из двух областей: рабочей области и области элементов управления.

В рабочей области приложения расположена траектория. По траектории перемещается фигура.

Пользователь имеет возможность:

а) сохранять фигуру в буфере обмена.

б) восстанавливать фигуру из буфера обмена.

Задание. Взять программу из лабораторной работы № 3 и расширить ее следующими средствами:

- предусмотреть возможность сохранения фигуры в буфере обмена и восстановления фигуры из буфера обмена.

- с помощью класса Exception сделать порождение и обработку исключительных ситуаций на файловые операции.

Требования:

1. Операции с буфером обмена выполнять в текстовом формате.

2. Предусмотреть перехват сообщения WM_DRAWCLIPBOARD (изменение содержимого буфера обмена). Если в буфер обмена записывается фигура, то нужно отобразить новое содержимое буфера в поле редактирования фигуры и новую фигуру в окне прорисовки.

3. Необходимо использовать правила именования идентификаторов.

Варианты заданий. Отсутствуют.

Содержание отчета

Титульный лист.

Задание.

Исходный текст программы.

Результаты работы программы (копия экрана приложения).

Защита лабораторной работы.

Студент демонстрирует созданный программный продукт. Необходимо заранее подготовить аргументы, показывающие лучшие особенности программы и качество разработки.

Студент демонстрирует степень выполнения задания.

Студент демонстрирует авторство путем ответов на вопросы по исходному тексту программы.

Оценка результатов.

Максимальное количество баллов за программу – 10.

 

Критерии оценки программы

Задание Оценка
Предусмотрен перехват события WM_DRAWCLIPBOARD  
Всего  

 

 

Корректировочные коэффициенты при оценке программы

Степень выполнения Полученные результаты Коэффициент
  Нет исходного текста программы 0,0
  Есть исходный текст программы, но нет чистой трансляции 0,2
  Лабораторная работа сделана не самостоятельно 0,2
  Имеются серьезные недоработки 0,5-0,8
  Имеются погрешности в работе программы 0,9
  Программа работает верно. 1,0

Если при выполнении работы получены оригинальные решения, то по усмотрению преподавателя могут быть добавлены поощрительные баллы.

 

Методические указания.

 

При занесении любой программой в буфер обмена каких-то данных генерируется сообщение Windows WM_DRAWCLIPBOARD, не имеющее параметров. Это сообщение поступает только в те окна, которые включены в цепочку (список) окон просмотра буфера обмена (рис. 1). Чтобы получать сообщения от буфера обмена, наша программа должна заявить операционной системе об этом и если вдруг настанет такой момент, когда мы больше не хотим получать сообщения от буфера обмена (например: закрытие приложения), мы должны отказаться вызовом стандартной функции.

 

 

Организация рассылки сообщения WM_DRAWCLIPBOARD

 

 

Рис. 1

 

Включить своё окно в цепочку окон просмотра буфера обмена можно функцией SetClipboardViewer:

HWND SetClipboardViewer(HWND hWndNewViewer);

Параметр hWndNewViewer является дескриптором окна, включаемого в цепочку. Функция возвращает дескриптор следующего окна в цепочке. Дело в том, что если мы включили свою форму в цепочку окон просмотра буфера обмена, то должны обеспечить обработку сообщений WM_DRAWCLIPBOARD и WM_CHANGECBCHAIN. Сообщение WM_CHANGECBCHAIN генерируется при изменениях в цепочке окон просмотра буфера. В конце обработчиков этих сообщений надо функцией SendMessage передать то же сообщение следующему окну цепочки, дескриптор которого вам вернула функция SetClipboardViewer.

Перед завершением приложения надо исключить своё окно из цепочки. Это делается функцией ChangeClipboardChain:

BOOL ChangeClipboardChain(IN HWND hWndRemove, IN HWND hWndNewNext);

Параметр hWndRemove - дескриптор удалённого окна, а параметр hWndNewNext - дескриптор следующего окна в цепочке.

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

Вызов функции SetClipboardViewer целесообразно включить в конструктор формы или в обработчик события формы OnCreate. Вызов функции ChangeClipboardChain можно сделать в деструкторе формы или в обработчике события OnDestroy.


Дата добавления: 2015-12-08; просмотров: 74 | Нарушение авторских прав



mybiblioteka.su - 2015-2024 год. (0.009 сек.)