Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
Плещёв ВУМИП 2012-07-06.doc
Скачиваний:
66
Добавлен:
13.05.2015
Размер:
9.35 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для выпол­не­ния программы.