Пошаговое руководство. Создание приложения Windows с поддержкой специальных возможностей
Создание приложений со специальными возможностями необходимо по деловым соображениям. Во многих странах для продаваемого программного обеспечения существуют правительственные требования в отношении специальных возможностей. Логотип «Сертифицировано для Windows» предполагает соответствие продукта требованиям в отношении специальных возможностей. По предварительным оценкам, только в США 30 миллионов пользователей нуждаются в программном обеспечении со специальными возможностями. Многие из них являются потенциальными клиентами.
В этом пошаговом руководстве рассматриваются пять требований в отношении специальных возможностей, выполнение которых необходимо для использования эмблемы «Сертифицировано для Windows». Согласно этим требованиям в приложении со специальными возможностями обеспечиваются:
- поддержка настройки размера, цвета, шрифта и параметров ввода с панели управления; изменение размеров строк меню, строк заголовков, границ и строки состояния при изменении соответствующих параметров на панели управления (дополнительные изменения элементов управления или кода в приложении не требуются);
- поддержка режима высокой контрастности;
- документированный доступ с клавиатуры ко всем возможностям;
- наглядное и программное представление фокуса клавиатуры;
- предоставление важной информации не только с помощью звукового сигнала.
Информацию о поддержке различных раскладок клавиатуры см. в разделе Рекомендации по разработке международных приложений.
Создание проекта
В этом пошаговом руководстве создается пользовательский интерфейс для приложения, принимающего заказы на пиццу. Оно содержит поле (TextBox) для имени заказчика, группу переключателей (RadioButton) для выбора размера пиццы, флажки (CheckedListBox) для выбора начинки, две кнопки с надписями «Заказать» и «Отмена», а также меню с командой «Выход».
Пользователь вводит имя заказчика, размер пиццы и выбранную начинку. Когда пользователь нажимает кнопку «Заказать», сводка заказа и его цена выводятся в окне сообщения, а элементы управления очищаются и становятся готовыми к приему следующего заказа. Когда пользователь нажимает кнопку «Отмена», элементы управления очищаются и становятся готовыми к приему следующего заказа. Когда пользователь выбирает в меню команду «Выход», программа закрывается.
Основное внимание в этом пошаговом руководстве уделяется не коду для системы розничной продажи, а специальным возможностям пользовательского интерфейса. В примере демонстрируются специальные возможности для некоторых часто используемых элементов управления, таких как кнопки, переключатели, поля и метки.
Начало разработки приложения
- Создайте новое приложение Windows в Visual Basic или Visual C#. Назовите проект PizzaOrder. (Подробнее см. в разделе Создание решений и проектов.)
Добавление элементов управления в форму
При добавлении элементов управления в форму придерживайтесь приведенных ниже правил для того, чтобы приложение было доступным для пользователей с физическими ограничениями.
- Задайте свойства AccessibleDescription и AccessibleName. В этом примере для свойства AccessibleRole достаточным является значение Default. Подробнее о свойствах специальных возможностей см. в разделе Определение сведений, связанных со специальными возможностями, для элементов управления в Windows Forms.
- Задайте размер шрифта 10 пунктов или выше.
Note
Если задать для формы размер шрифта 10 в начале работы, то все элементы управления, добавляемые в форму после этого, также будут иметь размер шрифта 10.
Обеспечение специальных возможностей приложения Windows
Поддержка режима высокой контрастности
Режим высокой контрастности представляет собой тип системной настройки Windows, при которой удобство чтения текста повышается за счет более контрастных цветов и размеров шрифта, подходящих для пользователей с нарушениями зрения. HighContrast Свойство позволяет определить, установлен ли режим высокой контрастности.
Если свойство SystemInformation.HighContrast имеет значение true , то в приложении происходит следующее:
- Все элементы пользовательского интерфейса отображаются с использованием системной цветовой схемы.
- Любая информация, передающаяся цветом, также передается с помощью визуальных или звуковых сигналов. Например, если определенный элемент списка выделен красным шрифтом, можно также отобразить его полужирным шрифтом, чтобы пользователь, не различающий цвета, видел, что элемент выделен.
- Опускаются все рисунки или узоры за текстом.
Приложение должно проверять значение свойства HighContrast при запуске и отвечать на системное событие UserPreferenceChanged. При изменении значения свойства HighContrast происходит событие UserPreferenceChanged.
В этом примере единственным элементом, не использующим системные параметры цвета, является lblCompanyName . SystemColors Класс используется для замены параметров цвета метки на выбранные пользователем системные цвета.
Эффективный способ обеспечения высокой контрастности
- Создайте метод, задающий для метки системные цвета.
' Visual Basic Private Sub SetColorScheme() If SystemInformation.HighContrast Then companyLabel.BackColor = SystemColors.Window companyLabel.ForeColor = SystemColors.WindowText Else companyLabel.BackColor = Color.Blue companyLabel.ForeColor = Color.Yellow End If End Sub // C# private void SetColorScheme() < if (SystemInformation.HighContrast) < companyLabel.BackColor = SystemColors.Window; companyLabel.ForeColor = SystemColors.WindowText; >else < companyLabel.BackColor = Color.Blue; companyLabel.ForeColor = Color.Yellow; >>
' Visual Basic Public Sub New() MyBase.New() InitializeComponent() SetColorScheme() End Sub // C# public Form1()
' Visual Basic Protected Sub UserPreferenceChanged(ByVal sender As Object, _ ByVal e As Microsoft.Win32.UserPreferenceChangedEventArgs) SetColorScheme() End Sub // C# public void UserPreferenceChanged(object sender, Microsoft.Win32.UserPreferenceChangedEventArgs e)
' Visual Basic Public Sub New() MyBase.New() InitializeComponent() SetColorScheme() AddHandler Microsoft.Win32.SystemEvents.UserPreferenceChanged, _ AddressOf Me.UserPreferenceChanged End Sub // C# public Form1()
Note
Код системного события выполняется в потоке, отдельном от основного приложения. Если не освободить событие, то код, связанный с событием, будет выполняться даже после закрытия программы.
' Visual Basic Protected Overloads Overrides Sub Dispose(ByVal disposing As Boolean) If disposing Then If Not (components Is Nothing) Then components.Dispose() End If End If RemoveHandler Microsoft.Win32.SystemEvents.UserPreferenceChanged, _ AddressOf Me.UserPreferenceChanged MyBase.Dispose(disposing) End Sub // C# protected override void Dispose( bool disposing ) < if( disposing ) < if (components != null) < components.Dispose(); >> Microsoft.Win32.SystemEvents.UserPreferenceChanged -= new Microsoft.Win32.UserPreferenceChangedEventHandler( this.UserPreferenceChanged); base.Dispose( disposing ); >
Передача важной информации способами помимо звукового сигнала
В этом приложении никакая информация не предоставляется только с помощью звукового сигнала. Если вы используете звук в своем приложении, следует также предусмотреть альтернативные способы передачи информации.
Обеспечение передачи важной информации способами помимо звукового сигнала
- Сделайте строку заголовка мигающей с помощью функции FlashWindow интерфейса Windows API. Пример вызова функций Windows API, см. в разделе Пошаговое руководство: Вызов Windows API.
Note
У пользователя может быть включена служба визуального оповещения Windows, что также приведет к миганию окна при подаче системных звуковых сигналов через встроенные динамики компьютера.
Тестирование приложения
Перед развертыванием приложения необходимо протестировать реализованные специальные возможности.
Тестирование специальных возможностей
- Для проверки доступа с клавиатуры отключите мышь и перейдите к каждому элемента пользовательского интерфейса, используя только клавиатуру. Убедитесь в том, что все задачи можно выполнить с помощью клавиатуры.
- Для проверки режима высокой контрастности используйте компонент «Специальные возможности» на панели управления. Выберите вкладку «Экран» и установите флажок «Высокая контрастность». Перейдите по всем элементам управления и убедитесь в том, что отражаются изменения цвета и шрифта. Кроме того, убедитесь в том, что отсутствуют рисунки или узоры под текстом.
Note
В Windows NT 4 значок «Специальные возможности» на панели управления отсутствует. Поэтому этот способ изменения значения свойства SystemInformation.HighContrast не работает в Windows NT 4.
Введение в WinAPI: Создание Windows-приложений
WinAPI (Windows Application Programming Interface) является набором функций и процедур, предоставляемых операционной системой Windows для разработки приложений. В этой статье мы рассмотрим основные принципы работы с WinAPI.
WinAPI обеспечивает доступ к функциям операционной системы Windows, таких как создание окон, управление ресурсами, работа с файлами, реагирование на события и еще многое другое. Чтобы начать разработку приложений с использованием WinAPI, необходимо знать несколько основных понятий и функций.
Основным элементом приложения, создаваемого с помощью WinAPI, является окно(не всегда). Для создания окна необходимо определить его характеристики, такие как размер, положение на экране и обработчик событий. Обработчик событий позволяет приложению реагировать на действия пользователя, например, нажатие кнопки мыши или нажатие клавиши.
После создания окна приложение переходит в цикл обработки сообщений, который прослушивает и обрабатывает события которые происходящие в окне. В цикле обработки сообщений мы можем реализовать логику нашего приложения.
WinAPI также предоставляет множество других функций и возможностей, таких как работа с ресурсами (иконки, курсоры, меню), рисование на экране, использование диалоговых окон и многое другое.
В этой статье мы рассмотрели лишь базовые принципы работы с WinAPI. Для изучения более сложных возможностей WinAPI рекомендуется обратиться к официальной документации и руководствам на других сайтах по программированию на WinAPI.
В заключение, WinAPI является мощным инструментом для разработки Windows-приложений. Он предоставляет разработчикам доступ к функциям операционной системы Windows и позволяет создавать приложения для операционных систем Windows в то время как UWP приложения может только на Windows 10+ запускаться.
И кстати: в рамках WinAPI вы также можете создавать приложения с использованием Direct3D , этот графический API разработанным для работы с трехмерной графикой. Direct3D позволяет разработчикам создавать и управлять 3D-графикой в WinApi-приложениях.
Как написать программу в блокноте
wikiHow работает по принципу вики, а это значит, что многие наши статьи написаны несколькими авторами. При создании этой статьи над ее редактированием и улучшением работали, в том числе анонимно, 44 человек(а).
Количество просмотров этой статьи: 202 815.
В этой статье:
Из этой статьи вы узнаете, как написать программу в стандартном приложении «Блокнот» для Windows. Если коротко, то вам нужно будет построчно ввести код программы в Блокнот, а затем сохранить файл в формате необходимого языка программирования.
Часть 1 из 6:
Общие указания
- Файлы Блокнота по умолчанию сохраняются в виде текстовых документов.
Найдите и запустите Блокнот. Наиболее простой способ запустить Блокнот — открыть меню «Пуск»
, ввести блокнот , а затем нажать на синюю иконку Блокнота в верхней части меню «Пуск».
- Если вы не знаете ни одного языка программирования, воспользуйтесь одним из примеров, указанных в статье.
Завершив строку кода, нажмите ↵ Enter . Как и в большинстве редакторов кода, отдельные строки кода должны располагаться на разных строках Блокнота.
Закройте все открытые фигурные и квадратные скобки. Если вы открыли квадратную или фигурную скобки ( или [ ), ее обязательно нужно закрыть, чтобы завершить строку кода. Несоблюдение этого правила приведет к ошибкам в коде.
При подготовке материала использовались источники:
https://msdn-whiteknight.github.io/dotnet-docs-ru/html/framework/winforms/advanced/walkthrough-creating-an-accessible-windows-based-application.html
https://habr.com/ru/articles/742396/
https://ru.wikihow.com/%D0%BD%D0%B0%D0%BF%D0%B8%D1%81%D0%B0%D1%82%D1%8C-%D0%BF%D1%80%D0%BE%D0%B3%D1%80%D0%B0%D0%BC%D0%BC%D1%83-%D0%B2-%D0%B1%D0%BB%D0%BE%D0%BA%D0%BD%D0%BE%D1%82%D0%B5