Реализация пользовательского интерфейса с помощью машиннозависимых языков
Принципы разработки оконного приложения Windows с помощью ассемблера. Реализация самого базового интерфейса с помощью добавления кнопки. Идентификаторы стандартных ресурсов: шаблоны панели инструментов, битовые массивы для отображения мыши (курсоры).
Рубрика | Программирование, компьютеры и кибернетика |
Вид | статья |
Язык | русский |
Дата добавления | 15.02.2019 |
Размер файла | 15,8 K |
Отправить свою хорошую работу в базу знаний просто. Используйте форму, расположенную ниже
Студенты, аспиранты, молодые ученые, использующие базу знаний в своей учебе и работе, будут вам очень благодарны.
Размещено на http://www.allbest.ru//
Размещено на http://www.allbest.ru//
Реализация пользовательского интерфейса с помощью машиннозависимых языков
Котов Владислав Владимирович
Аннотация
Статья посвящена разработке оконного приложения Windows с помощью ассемблера. Также приведены некоторые примеры организации оконных приложений, разобраны понятия непосредственно связанные с идеологией программирования приложений Windows.
Ключевые слова: приложение для Windows, оконные приложения, ассемблер, интерфейс с помощью машинно-ориентированных языков.
Annotation
The article is devoted to the development of a windows application using assembly language. Also some examples of the organization of window applications are given, concepts directly related to the ideology of programming Windows applications are discussed.
Keywords: application for Windows, window applications, assembler, interface using computer-oriented languages.
Введение
Разрабатывая приложение для Windows, программист задается вопросом выбора языка, на котором будет выполнена программа, а также целесообразность использования именно этого языка, а не иного, поскольку каждый из них предоставляет свои инструменты для реализации программного продукта и имеет свои недостатки. Ассемблер позволяет разрабатывать приложения, которые, как правило, имеют более высокую скорость работы и отклика на запросы пользователя, программный продукт быстрее загружается в оперативную память, а доступ к аппаратным ресурсам компьютера сохраняется полностью. Исходя из этого, ассемблер предоставляет полный набор инструментов для программиста, для полной отладки и управлением процесса разработки пользовательского интерфейса в оконном приложении Windows.
События
Чтобы начать разрабатывать приложение на ассемблере необходимо понимать, что придется иметь дело с событиями. Это значит, что ядро системы следит за аппаратной/программной активностью, и в ответ генерирует специальные сообщения, которые затем передает приложениям, которые ожидают наступление этих событий. В качестве примера событий можно привести любое действие со стороны пользователя: перемещение окна, нажатие клавиш клавиатуры или мыши и др. Поэтому, когда происходит какое-либо событие, система сама "предоставляет" для пользовательского приложения входные данные, и делает она это посредством передачи сообщений. А прикладная программа, в свою очередь, состоит из обработчиков входящих сообщений, которые требуемым образом реагируют на них.
Сообщения
В Windows насчитывается более 900 сообщений, связанных с большим количеством событий. Все сообщения представляют собой константы и содержатся в файле библиотеке макросов, называемой Win32.inc. С её помощью можно управлять оконными сообщениями(WM_XXX), сообщениями элементов окна редактирования(EM_XXX). Также можно изменять стили окон и управлять элементами управления Button(BM_XXX).
Сообщение имеет код и два параметра (WPARAM и LPARAM). LPARAM -- дескриптор элемента, старшее слово WPARAM -- событие, младшее слово WPARAM -- обычно идентификатор ресурса Параметры сообщения могут не иметь никакого смысла либо играть уточняющую роль. Например, сообщение WM_COMMAND генерируется системой, когда что-то происходит с элементами управления окна. В этом случае с помощью параметров можно определить, что это за элемент и что с ним произойдет.
Если же нам необходимо добавить отображение на экране элементов управления или отобразить курсор, иконки, меню, то потребуется использовать ресурсы приложения. Ресурсы приложения - массив данных, которые программист может добавить в исполняемый модуль. Ресурсы могут быть описаны как автоматически, так и вручную, используя обычный текстовый редактор. Идентификаторы стандартных ресурсов имеют префикс ID_XXX. В основные стандартные ресурсы входят: шаблоны панели инструментов, с помощью которых возможно отображение на экране элементов управления, курсоры-битовые массивы для отображения мыши, шаблоны диалогов-включают в себя инструменты для работы с размером окна, стилем, расположением и т.д, пиктограммы-битовые массивы для отображения иконок.
Окно
интерфейс оконный шаблон курсор
Окно - прямоугольная область экрана для организации обмена информации между пользователем и приложением. Одновременно может быть доступно только одно окно. Каждое окно имеет свой стиль, который характеризует тип и вид окна. Стиль задается константой с префиксом WS_XXX. Также окно может быть как основным, так и вспомогательным, которое, в свою очередь, может быть вторичным или диалоговым. При этом у приложения может быть только одно основное окно. Диалоговые окна делятся на модальные и немодальные. Модальные диалоговые окна для продолжения работы, ожидают от пользователя нажатие клавиши или ввода данных. Немодальные диалоговые окна могут использоваться для отображения кого-то процесса на экране. Таких окон может быть несколько, а диалог может быть прерван в любое время. Также окно может быть модальным и немодальным одновременно, поскольку может не требоваться ответа от пользователя для продолжения работы приложения.
Реализация интерфейса
Реализовать самый базовый интерфейс можно достаточно просто с помощью добавления кнопки. Сама кнопка создается в момент прихода в оконную процедуру сообщения WM_CREATE. Сама же кнопка создается API-функцией CreateWindowEx. Эта функция возвращает дескриптор, который может использоваться для дальнейшей работы с окном.
Для примера можно привести пример реализации кнопки “выход” с помощью еще одного окна. Для начала необходимо проверить WM_COMMADN, а затем проверяем LPARAM -- как говорилось выше, он хранит дескриптор, т.е уникальный номер окна. В данном случае для кнопки этого уже достаточно, чтобы определить событие.
Усложним задачу, добавив, помимо кнопки “выход”, окно-список, который будет состоять из названия жанров книг. При нажатии двойного щелчка по названию жанра, появляется окно-сообщение с названием этого жанра. Для начала разберемся с двойным щелчком. Он осуществляется следующим образом: во-первых, происходит отслеживание события, происходящего со списком, а потом с помощью параметра WPARAM определяется произошедшее событие. Параметр LPARAM содержит в младшем слове код события, в данном примере это LBN_DBLCLK. Следующим шагом следует определить от какого элемента списка пришло сообщение. Алгоритм выглядит следующим образом: во-первых, необходимо получить индекс текущего элемента с помощью сообщения LB_GETCURSEL, при этом индекс возвращается в регистре EAX и вовторых, получить непосредственное значение элемента списка можно при помощи сообщения LB_GETTEXT.
Вывод
Подводя итог, можно сказать, что машинно-ориентированные языки позволяют программисту реализовывать задачи различной сложности и содержания. С помощью низкоуровневых языков можно и нужно писать программы, поскольку помимо расширения кругозора программиста и наращивания его навыков, машинно-ориентированные языки помогают оптимизировать программы, написанные как на высокоуровневых, так и на низкоуровневых языках.
Библиографический список
Голубь Н.Г. Искусство программирования на Ассемблере /Н.Г. Голубь. -- 2-е изд. -- СПб: ООО"ДиаСофтЮП", 2002. -- 656с
Kip R.I. Assembly Language for x86 Processors /R.I. Kip. -- 7-е изд. -- New Jersey: Pearson Education, Inc, 2014. -- 680с
Пирогов, В.Ю. Ассемблер для Windows /В.Ю. Пирогов. -- 4-е изд. -- СПб: БХВ-Петербург, 2007. -- 896с
The art of assembly language /Hyde. R. -- 2-е изд. -- San Francisco: No Starch Press, Inc, 2010. -- 732с
Крупник А.Б. Изучаем Ассемблер /А.Б. Крупник. -- СПб: Питер, 2005. -- 249с
Грек А.А. Исследование программного обеспечения для визуализации ведения технологических расчётов [Электронный ресурс] / А.А. Грек, О.Ф. Абрамова // Международный студенческий научный вестник : электронный журнал. - 2018. - № 3, ч. 8. - C. 1225-1227. - Режим доступа :https://www.eduherald.ru/
Абрамова О.Ф. Анализ методов организации и проведения внеучебных конкурсных мероприятий в дистанционном формате / О.Ф. Абрамова, А.Ю. Александрина // Открытое и дистанционное образование. - 2017. - № 2 (66). - C. 14-25
Размещено на Allbest.ru
...Подобные документы
Понятие и виды пользовательского интерфейса, его совершенствование с помощью новых технологий. Характеристика приборной панели управления современного автомобиля и пультов дистанционного управления. Использование клавиатуры, особенности интерфейса WIMP.
курсовая работа [1,4 M], добавлен 15.12.2011Принципы создания приложений с GUI. Панель инструментов для добавления элементов интерфейса. Расположение кнопки и осей в окне приложения. Управление свойствами объектов. Установка свойств при редактировании. Программное изменение свойств. Флаги и рамки.
методичка [1,1 M], добавлен 06.07.2009Разработка блок-схемы и программы обработки одномерного массива с доступом к элементам с помощью индексов и с помощью указателей. Словесное описание алгоритма и пользовательского интерфейса, листинг программы обработки матрицы и результат её выполнения.
курсовая работа [391,1 K], добавлен 30.09.2013Технология разработки пользовательского интерфейса в среде Delphi. Создание таблицы, меню, форм для ввода и редактирования данных. Принципы организации меню как элемента интерфейса пользователя. Реализация сортировки, фильтрации, вычислений в таблице.
курсовая работа [1,6 M], добавлен 13.11.2012Разработка сетевой карточной игры "King" для операционной системы Windows XP. Реализация приложения с помощью интерфейса прикладного программирования Win32 API. Назначение серверной и клиентской части. Анализ исходных данных, тестирование приложения.
курсовая работа [209,3 K], добавлен 24.01.2016Разработка приложения для шифрования данных с помощью алгоритма DES5: процесс шифрования, расшифрования, получение ключей. Спецификация программы, процедуры и функции; описание интерфейса пользователя. Реализация задачи в среде программирования DELPHI.
курсовая работа [812,6 K], добавлен 27.03.2012Сетевые возможности языков программирования. Преимущества использования Java-апплетов. Классы, входящие в состав библиотеки java.awt. Создание пользовательского интерфейса. Сокетное соединение с сервером. Графика в Java. Значения составляющих цвета.
курсовая работа [508,1 K], добавлен 10.11.2014Обзор подходов к разработке музейных приложений с элементами дополненной реальности, формирование требований к ним. Выбор методов разработки приложения, разработка пользовательского интерфейса. Принципы тестирования. Реализация раздела "Распознавание".
дипломная работа [2,8 M], добавлен 03.07.2017Программная реализация современной модели системы тестирования знаний студентов с помощью кроссплатформенных средств разработки. Элементы пользовательского интерфейса тестовой системы, поэтапный процесс ее функционирования. Алгоритм оценивания ответов.
курсовая работа [648,7 K], добавлен 14.07.2012Изучение пользовательского интерфейса Windows XP, рабочий стол, учетные записи пользователей и их удаление, главное меню, панели инструментов. Папки и файлы, их создание, перемещение и копирование, удаление и восстановление, атрибуты файловых объектов.
лабораторная работа [251,6 K], добавлен 07.10.2009Разработка программы для работы в операционных системах семейства Windows. Использование среды Delphi - современной технологии визуального проектирования. Создание пользовательского интерфейса, оконного приложения, меню; задание исходной матрицы.
курсовая работа [1,5 M], добавлен 12.01.2011Интерфейс API, реализация функций API на уровне ОС, системы программирования и с помощью внешних библиотек. Характеристики сетевого интерфейса прикладного программирования Winsock, особенности его применения в операционных системах UNIX и Windows.
контрольная работа [74,2 K], добавлен 04.06.2015Построение функциональной и информационной моделей с использованием программ BPWin и ERWin. Описания интерфейса и элементов панели инструментов. Создание реляционной базы данных с помощью Microsoft Access. Разработка проекта федеральной целевой программы.
курсовая работа [703,3 K], добавлен 26.02.2014Изучение правил проектирования (предоставление пользователю контроля над программой, уменьшение загрузки памяти, увеличение визуальной ясности, последовательность) и принципов разработки пользовательского интерфейса на примере программы "Tidy Start Menu".
курсовая работа [286,6 K], добавлен 27.04.2010Критерии и порядок выбора интерфейса веб-сайта. Характеристики, которые определяют успешность пользовательского интерфейса. Структура навигационной системы. Графический дизайн и выбор цветовой схемы. Техническая реализация интерфейса сайта на сегодня.
реферат [164,8 K], добавлен 24.02.2011Создание программы для составления оптимального плана закупки товара у поставщиков, его реализация с помощью простого и модифицированного симплекс-методов. Проектирование математического обеспечения решения задачи. Описание пользовательского интерфейса.
курсовая работа [1,2 M], добавлен 21.01.2011Разработка и реализация демонстрационного многопоточного приложения. Выбор основных средств реализации. Описание логики работы приложения и разработка программного обеспечения. Описание пользовательского интерфейса. Реализация потоков в Delphi.
курсовая работа [462,5 K], добавлен 10.08.2014Общая характеристика языков программирования. Краткий обзор C, C++, Java, PHP, Python, Delphi и Visual Basic. Процесс разработки программы игра "Крестики и нолики" с помощью AppWizard. Компиляция и компоновка модулей, определение интерфейса приложения.
курсовая работа [2,5 M], добавлен 27.05.2014Структурная схема получения гороскопа по дате рождения. Листинг исходных кодов программы и руководство пользователя. Ввод данных с помощью объекта класса QDateEdit. Разработка пользовательского интерфейса. Выбор стратегии тестирования и отладка программы.
курсовая работа [1,0 M], добавлен 31.05.2015Пользовательский интерфейс операционной системы Windows. Настройки панели инструментов и панели задач. Работа с файлами и папками в системе, типы файловых объектов. Основные объекты и приемы управления, изменение параметров панели инструментов.
презентация [309,2 K], добавлен 20.10.2013