- •Задание 1. Реализация обработчиков команд меню File
- •Добавление команд в меню File
- •Определение расширений сохраняемых в программе файлов
- •Задание 2. Поддержка сериализации данных
- •Установка флага изменений
- •Регистрация типа файла
- •Подведение итогов
- •Глава 4. Прокрутка и разделение окон представления
- •Процесс взаимодействия объектов документа и его представления
- •Создание средств прокрутки окна
- •Преобразование координат
- •Размер рисунка и параметры окна прокрутки
- •Создание средств разделения окна
- •Задание 1. Изменение базового класса для класса представления приложения
- •Задание 2. Создание кода, обеспечивающего преобразования координат
- •Задание 3. Ограничение перемещения курсора в окне представления областью рисунка
- •Задание 4. Изменение формы курсора
Задание 4. Изменение формы курсора
Форма курсора мыши обычно изменяется в зависимости от операций, которые можно выполнять в окне представления. Будем считать, что курсор крестообразной формы находится внутри области рисунка, разрешающей рисование, а курсор в форме стрелки отображается вне области рисования. Необходимо дополнить программу операторами для изменения формы курсора. Для решения этой задачи выполните следующие действия.
Добавьте переменную m_HArrow в определение класса CMуPaintView в файле MуPaintView.h, задав тип HCURSOR. Указанная переменная является дескриптором курсора для его отображения в форме стрелки. Для добавления переменной используйте диалоговое окно Add Member Variable Wizard, вызвав его по команде AddAdd Variable контекстного меню.
class CMуPaintView : public CScrollView { //. . . // Generated message map functions protected: DECLARE_MESSAGE_MAP() int m_Dragging; //дескриптор курсора в форме стрелки HCURSOR m_HArrow; HCURSOR m_HCross; CPoint m_PointOld; CPoint m_PointOrigin; CString m_ClassName; public: // . . . };
Инициализируйте переменную m_HArrow в теле конструктора класса CMуPaintView в файле MуPaintView.cpp, присвоив m_HArrow дескриптор стандартного курсора мыши в форме стрелки. Добавленный код выделен полужирным шрифтом.
CMуPaintView::CMуPaint View() : m_Dragging(0) , m_PointOld(0)