Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
Курс лекций ООП Visual C++.doc
Скачиваний:
13
Добавлен:
10.11.2019
Размер:
453.12 Кб
Скачать

Кнопки на панели инструментов.

Кнопки на панели инструментов создаются и связываются с кодом программы аналогично пунктам меню.

  1. Вкладка ресурсов ResourceView-> ToolBar -> IDR_MAINFRAIM. Появится редактор панели инструментов. Щелкнуть по пустой кнопке и нарисовать изображение, которое будет на вашей кнопке.

  2. Свяжем кнопку с пунктом меню. Для перехода к свойствам кнопки, дважды щелкнуть на изображении. На диалоговой панели в поле ID выбрать идентификатор соответствующего пункта меню. В поле Promt указать подсказки, появляющиеся в строке состояния и «хинты»: «Строка состояния» \n «хинт»

Блокировка и пометка пунктов меню.

Открыть ClassWizard, в списке ObjectIDS найти идентификатор нужного пункта меню. В окошке сообщений выбрать пункт UPDATE_COMMAND_UI и добавить функцию обработчика:

Void Nview :: OnUpdateNameMenu (CcmdUI *pCmdUI)

{

// Для блокировки пункта //

pCmdUI->Enable(false);

// для пометки пункта меню //

pCmdUI->Enable(true);

pCmdUI->SetCheck(1);

}

Диалоговые окна.

  1. Для добавления к программе диалогового окна выбрать Insert-> ресурс -> dialog -> new. Появляется редактор диалогов с кнопками ОК и Cancel, палитра компонентов управления. Добавить кнопку и поле ввода на картинку. По умолчанию окну присваивается идентификатор ресурса IDD_DIALOG1. Диалог запускается функцией, унаследованной от класса CDialog – DoModal(). При закрытии диалога она возвращает константы IDOK и IDCancel. После помещения элемента на окно диалога можно изменить его характеристики через свойства в контекстном меню.

  2. Подключение диалога к программе.

    1. Создать класс диалога:

      1. ClassWizard -> AddClass -> NewClass.

      2. В поле Name указать Dlg1.

      3. Выбрать базовый класс CDialog

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

    1. Связывание переменных с элементами диалога (пример для поля ввода)

      1. ClassWizard

      2. В списке ClassName выбрать Dlg1.

      3. В списке ObjectID выбрать IDC_Edit1.

      4. AddVariable.

      5. В появившемся окне задать имя переменной, выбрать категорию 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);

}

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