Лабораторная работа №13. Элементы управления "Шкала индикации" (Progress) и "Маркер" (Slider). Модальные диалоговые окна - Технология разработки программного обеспечения систем управления
Цель Работы - изучить принципы работы элементов управления Progress и Slider. Получить навыки по самостоятельному созданию модальных диалоговых окон.
- Теоретические сведения
Элементы Управления Progress И Slider
Для отображения завершенности какого либо длительного процесса в Windows существует элемент Progress(шкала индикации). Этот элемент управления используется для наглядного представления некоторой изменяемой характеристики. Progress представляет собой прямоугольник, который заполняется системным цветом в направлении слева направо по мере выполнения некоторой операции.
Класс CProgressCtrl обеспечивает управление состоянием индикатора. Для установки текущей позиции индикатора в классе CProgressCtrl есть следующая функция:
Int SetPos( int NPos );
Здесь nPos - это новая позиция линейного индикатора, функция возвращает его старую позицию. По умолчанию верхний предел значений равен 100 (соответствует полностью заполненному индикатору), а нижний 0 (соответствует полностью не заполненному индикатору).
При необходимости для изменения пределов можно воспользоваться функцией:
Void SetRange( short nLower, short nUpper );
Здесь nLower - значение нижнего предела,
NUpper - новое значение верхнего предела.
Элемент управления Slider (маркер, линейный регулятор) представляет собой линейный регулятор, содержащий бегунок и метки шкалы. Этот элемент управления может использоваться для выбора дискретных значений из некоторого диапазона, т. е. его, как правило, используют для плавного изменения значения в некотором диапазоне в зависимости от положения бегунка.
В MFC элементу линейного регулятора соответствует класс CSliderCtrl. Как и в классе CProgressCtrl для установки нового положения бегунка в классе CSiderCtrl есть функция SetPos, для установки диапазона допустимых значений служит функция SetRange. Когда требуется определить положение бегунка, вызывают функцию-член класса CSiderCtrl:
Int GetPos( ) const;
Кроме того, часто возникает необходимость запрограммировать обработчик сообщения WM_HSCROLL. Как правило, обработка данного сообщения сводится в определении нового положения бегунка (метод GetPos) и отображении его значения в другом элементе управления, например в диалоговой панели.
Модальные Диалоговые Окна
Существует два типа диалоговых окон модальные и немодальные.
Модальные окна должны быть закрыты пользователем, для того чтобы приложение могло продолжать свое выполнение. Немодальные окна позволяют продолжать выполнять пользователю другие задачи без закрытия диалога, поэтому модальные диалоги более распространены. Примером модального окна может служить стандартный диалог выбора файлов.
Для создания модального диалогового сначала создают ресурс диалогового окна, и с помощью ClassWizard создают новый класс диалогового окна, порожденного от класса CDialog. Для вызова диалогового окна используют функцию DoModal( );. Для возвращения из модального диалогового окна значений в программу можно в классе диалогового окна объявить поля или функции.
Пример Реализации Программы
Задание: написать программу, вычисляющую значение интеграла функции по следующей приближенной формуле:
Где a, b - границы интегрирования;
N - число разбиений;
H - шаг,
H=(b-a)/N, .
Число разбиений должно задаваться с помощью элемента Slider, а скорость вычисления интеграла проконтролируем элементом Progress. Границы интегрирования необходимо задавать в модальном диалоговом окне.
Для решения задачи необходимо создать проект на основе диалогового окна (имя: CLabProgressBar), на втором шаге отключив опцию About Box. Используя панель Controls, нанести на заготовку формы - 1 элемент типа Edit Box, 2 - Static Text 2 - Button, 1 - Slider, 1- Progress. Название кнопки "OK" переименовать в "Выход" (рисунок 1).
Рисунок 1. - Результат работы программы
С помощью мастера ClassWizard связать компонент EditBox с переменной m_res типа double, компонент Progress с переменной m_progress, выбрав ее тип как CProgressCtrl, а элемент управления Slider с переменной m_slider, выбрав ее тип как CSliderCtrl.
Для создания модального диалогового окна в закладке ResourseView окна Workspase во всплывающем меню требуется выбрать пункт INsert, после чего появиться диалог Insert Resource, изображенный на рисунке 2.
Рисунок 2. - Панель Insert Resource
В диалоге Insert Resource следует выбрать пункт Dialog и нажать кнопку NEw, после чего появится заготовка нового окна. Создать окно, аналогичное снимку на рисунке 3.
Рисунок 3. - Окно для ввода данных
После создания ресурса диалогового окна следует создать класс для работы с ним. Для этого в основном меню надо выбрать пункт INsert и далее NEw Class, после чего появиться диалог New Class (рисунок 4). В поле Name требуется ввести имя класса, например CMyDialog. В выпадающем списке BAse Class требуется выбрать в качестве базового класса CDialog. В списке Dialog ID должен стоять идентификатор созданного ранее диалогового окна, по умолчанию для первого окна это значение IDD_DIALOG1.
Рисунок 4. - Панель диалога New Class
После создания класса диалогового окна с помощью мастера Class Wizard связать поля ввода с переменными m_a и m_b типа double. Для создания экземпляра класса диалогового окна, объявить поле в классе главного окна.
Далее сделать необходимые добавления в тексте файлов проекта.
Ниже приведен фрагмент заголовочного фйла класса главного окна с необходимыми добавками.
// CLabProgressBarDlg dialog
#include "MyDialog. h" //подключили заголовочный файл класса модального //диалога.
Class CLabProgressBarDlg : public CDialog
{// Construction
Public:CLabProgressBarDlg(CWnd* pParent = NULL); // standard constructor
CMyDialog d; //объявили переменную класса модального диалога.
// Dialog Data
//{{AFX_DATA(CLabProgressBarDlg)
Далее в основной файл ClabProgressBarDlg. cpp в конце метода:
BOOL CLabProgressBarDlg::OnInitDialog():
// TODO: Add extra initialization here
M_slider. SetRange(100,1000000);
// устанавливаем диапазон в элементе Slider
M_slider. SetPos(50000);
//устанавливаем положение ползунка
Return TRUE; // return TRUE unless you set the focus to a control
}
И наконец тексты щелчков на кнопках:
Void CLabProgressBarDlg::OnButton1()
{
//обработчик кнопки Граничные условия.
D. DoModal(); //вызов модального окна
}void CLabProgressBarDlg::OnButton2()
{
//обработчик кнопки Пуск.
CWaitCursor w; //класс для установки курсора - часы.
Double s=0;
Double x=d. m_a; //считывание из диалога нач. значения.
Double h=(d. m_b-x)/m_slider. GetPos(); //вычисление h=(b-a)/N
Int i=0;
While(x<d. m_b)
{
Double f=x*x; //числение квадрата икса
S+=f*h; // вычисление суммы
X+=h;
M_progress. SetPos(100*i++/m_slider. GetPos());
//установка положения в полосы в Progress
}
M_res=s;
UpdateData(0);
}
- Варианты заданий
Проверьте правильность выражений, вычислив интеграл:
- 1. 6. 2. 7. 3. 8. 4. 9. 5. 10. - Контрольные вопросы 1. Опишите принципы работы элементов управления Progress и Slider. 2. Назовите свойства модального и немодального диалоговых окон. 3. Опишите процесс создания модального диалогового окна.
Похожие статьи
-
Цель Работы - научиться использовать элемент управления ListBox а также основные методы класса СListBox. Использование возможности контроля правильности...
-
Цель Работы - изучить приемы создания и использования шаблонов классов. - Теоретические сведения Достаточно часто встречаются классы, объекты которых...
-
Цель Работы - использовать принципы архитектуры "Документ-Представление" для выборки и сохранения данных в файлах, а также взаимодействия элементов меню,...
-
Цель Работы - изучить одну из базовых концепций ООП, наследование классов в С++, заключающуюся в построении цепочек классов, связанных иерархически,...
-
Объект ориентированный класс программирование Цель Работы - изучить методику создания одномерных динамических символьных массивов при помощи...
-
Цель Работы - изучить основные способы работы с пользовательским типом данных "класс", его объектами, методами и способы доступа к ним. - Теоретические...
-
Цель Работы - научиться использовать операции динамического выделения и освобождения памяти на примере работы с одномерными и двумерными массивами, а...
-
Работа с контентом Контент системы содержит как отдельные медийные составляющие - текст, таблицы, ссылки, графику, так и связанные между собой....
-
Введение - Технология разработки программного обеспечения систем управления
С++ является языком объектно-ориентированного программирования (ООП). Объект - абстрактная сущность, наделенная характеристиками объектов реального мира....
-
Проведем оценку эргономичности пользовательского интерфейса, заполнив таблицу 7.1. В ячейки, отражающие степень выраженности показателя, следует внести...
-
Для перехода в административный раздел системы необходимо выбрать пункт меню "Файл" > "Администратор", после чего откроется окно, показанное на...
-
Выбор средств реализации информационной системы Названные в параграфе 1.4. настоящей работы задачи могут быть решены тремя типами средств автоматизации:...
-
Для реализации поставленной задачи методом конечных элементов будут использованы следующие программные обеспечения (ПО): - MATLAB - ПО и одноименный язык...
-
В данной главе приводится описание различных криптографических алгоритмов для безопасной передачи данных в приложении. RSA Для того, чтобы избежать...
-
Если в результате поиска на схеме по данным из таблицы будет найдено несколько экземпляров оборудования (т. е. с одинаковой маркировкой или...
-
Разработка программного продукта - Автоматизированные системы управления и обработки информации
В большей степени программные продукты не являются монолитом и имеют конструкцию (архитектуру) построения - состав и взаимосвязь программных модулей....
-
Общие сведения о тестировании Данный раздел посвящен проведению тестирования клиентского приложения. Тестирование для серверной части системы не...
-
Решения по пользовательскому интерфейсу в части серверного приложения (вебсайт) Для реализации требований к серверному приложению (Сайту), объединяющему...
-
Установка и системные требования приложения Для установки программы необходимо зайти в папку "Файловый менеджер [Setup]", и запустить файл "setup. exe"....
-
Сообщения системы, Системные требования, Элементы управления - Разработка визуального редактора
Главные сообщения пользователю представлены отдельными диалоговыми окнами, появляющимися на главном окне после определенных действий. Если пользователь...
-
Работа в Панели управления - Разработка Web-сайта предприятия (ООО "Полтава")
Откроется страница с мастером настройки конфигурации сайта (рис. 5). В панели управления мы вводим название садика, выбираем язык Русский, так же...
-
Для проекта предусматривающего наличие большого количества задач, отображение показателей и составление отчетов, ручное ведение проекта не является...
-
На рисунке 1 представлен фрагмент электронной таблицы, в которой содержаться исходные данные для решения задачи. Рисунок 1 - Фрагмент электронной...
-
Требования к приложению Результатом дипломного проекта "Калькулятор коммунальных услуг" должно служить достижение и решение поставленных задач: -...
-
Поскольку клиентская часть представляет собой приложение на базе операционной системы Android, то для ее разработки был выбран рекомендуемый...
-
В разработке системы принимал участие один инженер-программист. Длительность выполнения работ по проектированию и разработке системы представлена в...
-
В этой главе представлено описание инструментов и методов, использованных при написании кода программы. Инструменты разработки серверной части Для...
-
Постановка задачи нечеткого управления Была рассмотрена задача по прогнозированию износа (в микрометрах) тормозных дисков автомобилей. Входные данные:...
-
Считается, что правильно организованный документооборот и электронный архив документов становятся необходимыми условиями эффективной работы современного...
-
Проведем сравнительную оценку напряженность процесса эксплуатации системы в процессе работы. Для этого заполним таблицу 7.2, в которой отражается степень...
-
Особенностью API для коммуникации с СКУД является то, что авторизация методов происходит не с помощью токена, а с помощью проверки IP адреса клиента на...
-
В настоящее время систем видеонаблюдения на рынке продается очень много, и обычно бывает очень сложно принять правильное решение, выбрать нужное решение....
-
2.1 Описание структуры базы данных Реляционная схема базы данных для ЦЗН представлена следующими таблицами: "ПО" - содержит список единиц программного...
-
Advanced Encryption System - алгоритм шифрования, разработанный в 1998 году, который пришел на замену алгоритму DES. Данный алгоритм базируется на шифре...
-
Data Encryption Standard - созданный в 1975 году и стандартизированный в 1977 году блочный алгоритм симметричного шифрования. Алгоритм Triple DES (3DES)...
-
Устройство на операционной системе Android с поддержкой технологии NFC поддерживает три способа взаимодействия. Первый способ - режим чтения/записи. Этот...
-
Структура системы В ходе разработки выпускной квалификационной работы использовались базы данных, созданные в среде MySQL Workbench, и создано клиентское...
-
Особенности функционального назначения Разрабатываемый программный продукт - это модуль вебсайт для системы управлением контентом портала с архивом...
-
Сравнительная технико-экономическая эффективность разработки определяется по формуле: , (10) Где - сравнительная технико-экономическая эффективность...
-
Функциональная структура отражает жизненный цикл данных, циркулирующих и хранящихся в Системе. Решение по функциональной архитектуре Системы представлено...
Лабораторная работа №13. Элементы управления "Шкала индикации" (Progress) и "Маркер" (Slider). Модальные диалоговые окна - Технология разработки программного обеспечения систем управления