- •Структура программы.
- •Создание простейшего приложения Windows.
- •Работа с пером.
- •Работа с кистью.
- •Работа со шрифтами.
- •Работа с клавиатурой.
- •Работа с мышью.
- •Редактирование меню.
- •Кнопки на панели инструментов.
- •Блокировка и пометка пунктов меню.
- •Диалоговые окна.
- •Флажки и переключатели.
- •Списки.
- •Методы выбора.
- •Методы параметров рисунка.
- •Методы цветовой палитры.
- •Методы атрибутов рисунка.
- •Растровые методы.
- •Методы отсечения.
- •Методы рисования линии.
- •Методы простых рисунков.
- •Методы рисования эллипса и многоугольника.
- •Текстовые методы.
Кнопки на панели инструментов.
Кнопки на панели инструментов создаются и связываются с кодом программы аналогично пунктам меню.
Вкладка ресурсов ResourceView-> ToolBar -> IDR_MAINFRAIM. Появится редактор панели инструментов. Щелкнуть по пустой кнопке и нарисовать изображение, которое будет на вашей кнопке.
Свяжем кнопку с пунктом меню. Для перехода к свойствам кнопки, дважды щелкнуть на изображении. На диалоговой панели в поле ID выбрать идентификатор соответствующего пункта меню. В поле Promt указать подсказки, появляющиеся в строке состояния и «хинты»: «Строка состояния» \n «хинт»
Блокировка и пометка пунктов меню.
Открыть ClassWizard, в списке ObjectIDS найти идентификатор нужного пункта меню. В окошке сообщений выбрать пункт UPDATE_COMMAND_UI и добавить функцию обработчика:
Void Nview :: OnUpdateNameMenu (CcmdUI *pCmdUI)
{
// Для блокировки пункта //
pCmdUI->Enable(false);
// для пометки пункта меню //
pCmdUI->Enable(true);
pCmdUI->SetCheck(1);
}
Диалоговые окна.
Для добавления к программе диалогового окна выбрать Insert-> ресурс -> dialog -> new. Появляется редактор диалогов с кнопками ОК и Cancel, палитра компонентов управления. Добавить кнопку и поле ввода на картинку. По умолчанию окну присваивается идентификатор ресурса IDD_DIALOG1. Диалог запускается функцией, унаследованной от класса CDialog – DoModal(). При закрытии диалога она возвращает константы IDOK и IDCancel. После помещения элемента на окно диалога можно изменить его характеристики через свойства в контекстном меню.
Подключение диалога к программе.
Создать класс диалога:
ClassWizard -> AddClass -> NewClass.
В поле Name указать Dlg1.
Выбрать базовый класс CDialog
Для работы с новым диалогом выбрать имя класса в поле ClassWizard.
Связывание переменных с элементами диалога (пример для поля ввода)
ClassWizard
В списке ClassName выбрать Dlg1.
В списке ObjectID выбрать IDC_Edit1.
AddVariable.
В появившемся окне задать имя переменной, выбрать категорию Value, задать тип переменной.
Для записи значения из элемента в переменную вызывается функция
ApdateData(True), а для записи из переменной в элемент – ApdateData(False).
Флажки и переключатели.
Флажки и переключатели наследники класса CButton, то при работе с этими элементами можно использовать функции:
GetCheck () – определяет состояние кнопки;
SetCheck () – залает состояние кнопки;
SetIcon () – задает значок, отображаемый на кнопке;
SetButtonStyle () – задает стиль кнопки;
BS_CHECKBOX – флажок с текстом справа,
BS_RADIOBUTTON – переключатель с текстом справа,
BS_LEFTTEXT – текст помещается слева,
BS_AUTOCHECKBOX – флажок с автоматически изменяемым состоянием при выделении
пользователем
BS_AUTORADIOBUTTON - флажок с автоматически изменяемым состоянием при
выборе пользователем, остальные переключатели группы автоматически сбрасываются.
Кнопки можно создавать не только на диалоговых окнах, но и объявляя объект CButton и вызывая функцию Create в любом месте окна программы. В этом случае визуальный редактор диалогов не доступен, идентификатор элементов надо определять самим, схему обработку сообщений реализовать самим.
С переключателями и флажками можно работать как с обычными кнопками, т.е. связать событие BN_CLICKET с функцией обработчика.
1 Вариант :
1. ClassWizard;
2. В списке ObjectIDS выбрать IDC_CHECK1;
3. В списке Messages выбрать BN_CLICKET;
4. AddFunction;
5. Открыть вновь созданный метод
void Name :: OnCheck1()
{
m_text = “Выбран 1 ”;
UpdateData(false);
}
2 Вариант: предполагает связывание переключателей и флажков с переменными членами класса Dialog.
1. ClassWizard;
2. Выбрать идентификатор IDS_CHECK1 на вкладке MemberVariables;
3. AddVariable;
4. Задаем имя, связанное с элементом переменной m_C1 и выбираем тип bool;
5. Аналогично для второго флажка;
6. Для IDS_EDIT создать переменную m_text типа CString;
7. Для переключателей добавим функции обработки
void Name :: OnRadio1()
{
m_C1 = true;
m_C2 = false;
m_text = “Выбран 1”
UpdateData(false);
}
void Name :: OnRadio2()
{
m_C2 = true;
m_C1 = false;
m_text = “Выбран 2”
UpdateData(false);
}