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

Перейдите на вкладку Окно ресурсов Dialogs (Resource View) и найдите идентификатор меню IDR_MAINFRAME в строке Menu. Двойным щелчком на идентификаторе IDR_MAINFRAME вызываем редактор меню. Вместо текста Прототип для текста (Type here) вводим текст “Перо”. Вводим имя команды “Толщина линии” в меню Перо. Выполняем команду Изменить идентификаторы из контекстного меню для команды “Толщина линии”. Вводим ИД: ID_PEN_WIDTH. Окно ресурсов будет выглядеть так:

Выполните команду Свойства в контекстном меню для класса CDialogsView в Окне классов (Class View). Перейдите на вкладку События (Events). В списке идентификаторов щелкните на символе слева от идентификатора ID_PEN_WIDTH. В списке сообщений выберите COMMAND, а в комбинированном списке, расположенном справа от идентификатора, активизируйте команду <Add> OnPenWidth. После этого в файл DialogsView.h будет добавлено объявление функции-члена, а в файл DialogsView.cpp - ее определение.

  1. Отображение диалогового окна.

Теперь запишем код в функцию OnPenWidth для вызова диалогового окна из меню:

void CDialogsView::OnPenWidth()

{

Dlg dlg;

int result = dlg.DoModal();

if(result == IDOK)

{ //Если нажата кнопка OK

CDialogsDoc* pDoc = GetDocument();// Создаем указатель на класс CDialogs1Doc

ASSERT_VALID(pDoc); //Если pDoc = NULL, то прерываем выполнение программы

//Пересылаем значение переменной m_WidthDlg в переменную m_WidthPenDoc

pDoc -> m_WidthPenDoc = dlg.m_WidthDlg;

Invalidate(); //Вырабатывается сообщение WM_PAINT(Повреждение окна и для него вызывается обработчик OnDraw

}

}

Чтобы класс CDialogsView мог работать с членами класса Dlg, необходимо включить команду #include "Dlg.h" в файл DialogsView.cpp после строки #include "Dialogs.h".

Добавление стандартного диалога для выбора цвета кисти.

  1. Добавление переменной в класс cDialogsView для определения дополнительной цветовой палитры стандартного диалога.

Добавим описание переменной MyColors[16] типа COLORREF в класс CDialogsView с модификатором public. Добавить описание массива MyColors[16] при помощи контекстного меню для класса CDialogsView не получиться. Сделаем это по-другому. Найдем заголовочный файл DialogsView.h класса CDialogsView и добавим описание с помощью клавиатуры:

COLORREF MyColors[16];

Заполним произвольными кодами цвета массив из 16 элементов для определения дополнительной цветовой палитры стандартного диалога. Определим массив в конструкторе класса CDialogsView:

CDialogsView::CDialogsView()

{

// Массив цветов пользователя

MyColors[0] = RGB(0,0,0);

MyColors[1] = RGB(0,0,255);

MyColors[2] = RGB(0,255,0);

MyColors[3] = RGB(0,255,255);

MyColors[4] = RGB(255,0,0);

MyColors[5] = RGB(255,0,255);

MyColors[6] = RGB(255,255,0);

MyColors[7] = RGB(0,0,128);

MyColors[8] = RGB(0,128,0);

MyColors[9] = RGB(0,128,128);

MyColors[10] = RGB(128,0,0);

MyColors[11] = RGB(0,128,128);

MyColors[12] = RGB(128,128,0);

MyColors[13] = RGB(0,0,64);

MyColors[14] = RGB(0,64,0);

MyColors[15] = RGB(64,0,0);

}