Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
Dialogs_7_2012.doc
Скачиваний:
0
Добавлен:
01.05.2025
Размер:
286.21 Кб
Скачать
  1. Добавление команды “Цветовая палитра” в меню “Перо”. Код функции команды “Цветовая палитра для кисти”.

Команде “Цветовая палитра” присвоим идентификатор ID_PEN_COLOR_PALITTE в меню “Перо”. Свяжем этот идентификатор с сообщением COMMAND. Добавим функцию для обработки этого сообщения таким же образом, как сделали для команды “Толщина линии пера”. Введем следующий код для обработчика:

void CDialogsView::OnPenColorPalitte()

{

CColorDialog dlg; // Создание объекта диалогового класса

CDialogsDoc *pDoc = GetDocument(); // Запоминаем адрес документа

// Инициализация переменных структуры m_cc класса CColorDialog

dlg.m_cc.lpCustColors = MyColors;// Пересылаем адрес массива с кодами цветов дополнительной палитры в указатель lpCustColors

dlg.m_cc.rgbResult = pDoc->m_ColorBrushDoc;; // Определяем текущее значение для цвета кисти.

dlg.m_cc.Flags |= CC_RGBINIT; // Определяем бит флагов режима работы диалога

if(dlg.DoModal() == IDCANCEL) return; // Если диалог завершился неудачно, то уходим

pDoc-> m_ColorBrushDoc = dlg.m_cc.rgbResult;// Пересылаем цвет в класс документов

Invalidate(); // Объявляем поврежденной всю клиентскую область окна

}

  1. Сохранение результатов выбора цвета и толщины для пера и цвет кисти.

Загрузим в редактор текста метод Serialize класса CDialogsDoc. Изменим метод следующим образом:

void CDialogsDoc::Serialize(CArchive& ar)

{

if (ar.IsStoring())

{// запись информации в файл

ar << m_ColorBrushDoc << m_ColorPenDoc;

ar << m_WidthPenDoc;

}

else

{// чтение информации из файда

ar >> m_ColorBrushDoc >> m_ColorPenDoc;

ar >> m_WidthPenDoc;

}

}

С помощью данного метода мы будем сохранять цвет кисти и толщину пера.

  1. Изменение информации, которая выводиться при помощи диалогового окна О проекте Dialogs.

Откройте Окно ресурсов Dialogs. Двойным щелчком по идентификатором IDD_ABOUTBOX загрузите в редактор диалоговых окон. С помощью контекстного меню для статического текста диалогового окна перейдите в окно Свойства. Измените свойство Подпись как отображено ниже.

Самостоятельная работа

  1. Объясните, почему нельзя указать доступ «private:» для переменных: COLORREF m_ColorBrushDoc, COLORREF m_ColorPenDoc

  2. Добавить команду «Цвет пера» в меню «Перо» для выбора цвета пера с помощью диалогового окна:

Соседние файлы в предмете [НЕСОРТИРОВАННОЕ]