Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
Высокоуровневые методы информатики и программир...docx
Скачиваний:
25
Добавлен:
12.11.2019
Размер:
6.53 Mб
Скачать

7.1. Создание консольного приложения

Порядок создания консольного приложения:

  1. Выполним команду New/Project/Win32 Console Application.

  2. Введем в поле Project Name имя программы (Privet) и нажмем кнопку OK.

  3. Выберем тип программы A simple application и нажмем кнопку Finish.

  4. Выберем в списке объект main и откорректируем функцию:

#include "stdafx.h"

#include "stdio.h" //подключение библиотеки ввода-вывода

int main(int argc, char* argv[]) {printf("\nHello!\n"); return 0;}

  1. Для выполнения программы нажмем клавишу :^F5.

7.2. Основные элементы управления

Рассмотрим пример создания диалогового приложения с различными управляющими элементами (рис. 7.2.1).

Рис. 7.2.1. Диалоговое окно с примером

  1. Создадим папку для хранения приложения.

  2. Выполнить команду New/Project/MFC AppWizard (exe).

  3. Введем в поле Project Name имя программы Prim и нажмем кнопку OK.

  4. На первом шаге мастера выберем вариант создания диалогового приложения (Dialog based) и нажмем кнопку Next.

  5. Последовательно пройдем все остальные шаги мастера (всего четыре шага) и нажмем кнопку Finish. Сформируется заготовка окна.

  6. Удалим с формы текст TODO: Place dialog control here.

  7. Выполним команду Properties контекстного меню элемента Prim resources/Dialog/IDD_Prim_Dialog и в поле Language выберем Russian.

  8. В окне свойств формы зададим наименование формы Пример ис­поль­зования управляющих элементов (свойство Caption), размер и наименование соответствующего шрифта установим кнопкой Font.

  9. Разместим элемент Static Text (Caption=Текстовое поле).

  10. Разместим элемент Text Box (IDC_EDIT1).

  11. Аналогично создадим заголовок (Счетчик) и поле IDC_EDIT2.

  12. Разместим элемент Spin (IDC_SPIN1) рядом с полем IDC_EDIT2 и установим свойства: Alignment=Right (выравнивание справа), Auto buddy (автоматическое подключение связанного элемента, созданного перед счет­чиком (IDC_EDIT2)), Set buddy integer (целочисленное значение счетчика), Arrow Keys (изменение значения счетчика с помощью клавиш).

Изменим название кнопки Cancel на Отмена.

  1. Разместим элемент Combo Box (IDC_COMBO1) под кнопками, щелкнем по кнопке раскрытия списка и перенесем вниз нижнюю часть. На странице Data свойства этого элемента введем (для перехода на следующую строку нажимаются клавиши ^Enter) три строки со значениями 5, 15, 300. Снимем флажок сортировки (Sort) и установим выравнивание текста справа (Right aligned text).

  2. Разместим элемент Radio Button (IDC_RADIO1) со свойствами: Caption=Текстовое поле, Group.

  3. Аналогично разместим элемент IDC_RADIO2 с надписью Счетчик, но без флажка Group.

  4. Разместим снаружи радиокнопок элемент Group Box с надписью Выбор поля для сохранения.

  5. Разместим поле CheckBox с надписью Сохранять предыдущее значение.

  6. Выполним команду View/ClassWizard и раскроем страницу Mem­ber Variable (рис. 7.2.2). Выделим ресурс IDC_EDIT2, нажмем кнопку Add Variable и заполним окно с описанием переменной m_chethik (рис. 7.2.2).

Рис. 7.2.2. Страница переменных и окно добавления переменной

Аналогичным образом назначим переменные: m_cpicok для IDC_COM­BO1, m_edit1 для IDC_EDIT1, m_radio1 для IDC_RADIO1, m_check1 для IDC_CHECK1.

  1. На странице Message Maps выделим объект IDC_RA­DIO1, сообщение BN_CLICK и нажмем кнопку Add Member Fuction (рис. 7.2.3); оставим без изменения имя функции, нажмем кнопку OK.

Р ис. 7.2.3. Страница сообщений и окно добавления функции обработки сообщения

  1. Аналогичным образом определим функции обработки сооб­ще­ний: UDN_DELTAPOS для ресурса IDC_SPIN1, BN_CLICED для IDC_RADIO2, CBN_SELENDOK для IDC_COMBO1.

  2. Вставим в тело функций OnSelendokCombo1, OnRadio1, OnRadio2 вызов функции UpdateData() для обновления значений соот­ветству­ющих переменных путем вызова и выполнения функции DoDataExchange. В конце функции OnDeltaposSpin1 включим оператор pNMUpDown->iDelta=-pNMUpDown->iDelta для установления обще­при­ня­­­­того в Office изменения счетчика: стрелка вниз - уменьшение и вверх - уве­­­личение значения счетчика, а не наоборот, как это принято в Visual С.

  3. Откорректируем следующие операторы функции (конструктора класса) CprimDlg, которые присваивают начальные значения элементам:

m_chethik = _T("5"); m_cpicok = _T("10"); m_edit1 = _T("15");

  1. Приведем функцию DoDataExchange к следующему виду:

void CPrimDlg::DoDataExchange(CDataExchange* pDX)

{ CDialog::DoDataExchange(pDX);

DDX_Text(pDX, IDC_EDIT2, m_chethik); // m_chethik=IDC_EDIT2

DDV_MaxChars(pDX, m_chethik, 3); //длина значения m_chethik <=3

DDX_CBString(pDX, IDC_COMBO1, m_cpicok);

DDV_MaxChars(pDX, m_cpicok, 3); //длина значения m_cpicok <=3

DDX_Text(pDX, IDC_EDIT1, m_edit1); // m_edit1=IDC_EDIT1

DDX_Radio(pDX, IDC_RADIO1, m_radio1); // m_radio1=IDC_RADIO1

DDX_Check(pDX, IDC_CHECK1, m_check1); // m_check1=IDC_CHECK1

if (m_check1)

{ switch (m_radio1) //значения переменных->в управляющие элементы

{ case 0: SetDlgItemText(IDC_EDIT1,m_cpicok); break;

case 1: SetDlgItemText(IDC_EDIT2,m_cpicok);

}

}

}

  1. Сохраним проект и нажмем кнопку Execute Program для выпол­не­ния программы.