В диалоговых окнах windows какие отсутствуют управляющие элементы
Диалоговые окна Windows XP
Диалоговые окна, о которых уже упоминалось в статье Основные элементы окна Windows XP, пользователь видит в процессе работы с приложениями (программами) и самой операционной системой. Они появляются в момент обращения системы или программы к пользователю с запросом какой-либо необходимой информации для продолжения работы или подтверждения каких-то действий.
Диалоговые окна всегда находятся на переднем плане, закрывая остальные открытые (работающие) окна. Как правило, они не изменяются в размерах, а закрывать их можно только: после подтверждения выбора (ОК, Применить, Отмена) или кликом на закрывающей кнопке.
Диалоговые окна Windows могут быть модальными или немодальными.
Модальные окна останавливают работу приложения и прежде, чем вы продолжите работу, необходимо выполнить все команды в этом окне и закрыть его.
Модальные диалоговые окна могут быть вида:
Окно диалога. Необходимо для ввода (выбора) данных или параметров, требующихся для продолжения работы с программой. | |
Окно сообщения. Оповещает пользователя, что совершено какое-то действие или завершена операция. | |
Окно запроса. Дает пользователю возможность выбрать действие, итогом которого станет продолжение работы с программой или ее завершение. |
Немодальные окна работу приложения (программы) не останавливают. Не закрывая окна, щелчком мыши, можно перейти в окно документа или программы и работать с ними, возвращаясь также щелчком мыши в диалоговое окно. Пример — окно Справка.
Диалоговые окна могут быть самого разного назначения и иметь различные поля и кнопки для ответа на запрос. Сложные диалоговые окна многостраничны, состоят из нескольких вкладок (закладок).
Диалоговое окно Windows обычно состоит из строки заголовка и элементов окна.
В диалоговых окнах предусмотрен набор различных полей и кнопок для возможности ответа на запрос.
Основные элементы диалогового окна
От назначения окна зависит его содержимое, но в целом, набор элементов повторяется во всех приложениях операционной системы Windows. Это:
Рассмотрим основные разновидности элементов:
закрытие окна с сохранением всех параметров и внесенных изменений | |
закрытие окна без сохранения параметров и внесенных изменений | |
сохранение всех параметров и изменений без закрытия окна | |
пользователь может с клавиатуры вводить в прямоугольную область текст, для этого нужно щелкнуть внутри поля мышью | |
в данное поле значения можно ввести как с клавиатуры, так и нажимая на кнопки справа, стрелка вверх увеличивает значения параметра, стрелка вниз — уменьшает | |
в нем содержится список, доступных для выбора объектов, если список больше размера поля, то будут видны полосы прокрутки для просмотра всего списка полностью, выбрать объект можно щелкнув на нужном мышью | |
в нем отображается значение текущего параметра, просмотреть все возможные значения можно щелкнув мышью на кнопке — треугольнике справа | |
кружок с цветной точкой внутри или без точки (радиокнопка) — выбор только одного из взаимоисключающих, заменяющих друг друга параметров (как в русском языке союз «или») Щелчком ЛКМ мышки отмечается выбор пользователя, с других кнопок отметка снимается | |
«галочка» внутри квадратного поля (чекбокса), с ее помощью можно включить/отключить параметры, описание которых расположено рядом, одновременно можно выбрать несколько параметров одновременно (соответствует союзу «и») | |
щелчок по кнопке активирует режим контекстной справки диалогового окна, для этого кликните по выбранному элементу, сразу появится прямоугольная область с текстом — пояснением | |
закрытие окна | |
перемещение влево/вправо вдоль линейки позволяет плавно настраивать значение параметра в определенном диапазоне (увеличение/уменьшение), к примеру, громкость, чувствительность мыши, скорость автоповтора клавиатуры и т.п. | |
в ряде диалоговых окон сходные параметры группируются во вкладках: от двух и более; располагаются вкладки сразу под строкой заголовка окна; одновременно можно работать только с одной вкладкой, активная находится на переднем плане, полностью занимая окно; сменить вкладку можно щелкнув мышью на ее названии | |
предварительный просмотр, показывает, как будет выглядеть настраиваемый объект после сделанных изменений и выбранных параметров |
Горячие клавиши для диалоговых окон.
Alt+F4 — закрывает текущий элемент или же выход из активной программы
Ctrl+Tab – переключение вкладок в правую сторону (вперед)
Ctrl+Shift+Tab — переключение вкладок в левую сторону (назад)
Tab – последовательное перемещение по кнопкам, полям, спискам, меню, панелям и т. д. (вправо вниз)
Shift + Tab — последовательное перемещение по пунктам, кнопкам, полям, спискам, меню, панелям и др. в обратном порядке (влево вверх)
Space (Пробел) – позволяет выделить (нажать) на выбранную кнопку, поставить флажок
Alt + подчеркнутая буква — нажав и удерживая клавишу Alt, посмотрите на название вкладки окна, списка, поля и т.д., одна из букв подчеркнута, нажмите ее на клавиатуре и вы перейдете к выбранному элементу
Клавиши со стрелками — навигация по пунктам, опциям
На этом повествование о диалоговых окнах и их основных элементах можно завершить. Поделитесь в комментариях своими способами работы, положительным опытом или проблемами и трудностями.
Если статья может быть полезной вашим знакомым, друзьям или родственникам, можете поделиться с ними, нажав кнопки социальных сетей блога КомпАс.
Элементы управления «диалоговое окно» (C++) Dialog Box Controls (C++)
Самый быстрый способ добавить элементы управления в диалоговое окно, изменить положение существующих элементов управления или переместить элементы управления из одного диалогового окна в другое заключается в использовании метода перетаскивания. The fastest way to add controls to a dialog box, reposition existing controls, or move controls from one dialog box to another, is to use the drag-and-drop method. Расположение элемента управления выделяются пунктирной линией до тех пор, пока оно не будет перенесено в диалоговое окно. The control’s position is outlined in a dotted line until it is dropped into the dialog box. При добавлении элемента управления в диалоговое окно с методом перетаскивания элементу управления присваивается стандартная высота, соответствующая этому типу элемента управления. When you add a control to a dialog box with the drag-and-drop method, the control is given a standard height appropriate to that type of control.
Когда вы добавляете элемент управления в диалоговое окно или перемещаете его, его окончательное размещение может быть определено направляющими или полями или включенным режимом сетки макета. When you add a control to a dialog box or reposition it, its final placement may be determined by guides or margins, or whether you have the layout grid turned on.
После добавления элемента управления в диалоговое окно можно изменить свойства, такие как заголовок, в окне Свойства. Once you have added a control to the dialog box, you can change properties such as its caption in the Properties Window. Можно также выбрать несколько элементов управления и изменить их свойства одновременно. You can also select multiple controls and change their properties all at once.
Дополнительные сведения о элементах управления и диалоговых окнах см. в разделе классы элементов управления, классы диалоговых окони стили полосы прокрутки. For more information on controls and dialogs, see Control Classes, Dialog Box Classes, and Scroll-Bar Styles.
Стандартные элементы управления, доступные на панели элементов с событиями по умолчанию: The standard controls available in the Toolbox with default events are:
Имя элемента управления Control name | Событие по умолчанию Default event |
---|---|
Элемент управления Button Button control | BN_CLICKED BN_CLICKED |
Элемент управления «Флажок» Check Box control | BN_CLICKED BN_CLICKED |
Элемент управления «Поле со списком» Combo Box control | CBN_SELCHANGE CBN_SELCHANGE |
Элемент управления «Поле ввода» Edit control | EN_CHANGE EN_CHANGE |
Группа Group box | (неприменимо) (not applicable) |
Элемент управления «список» List Box control | LBN_SELCHANGE LBN_SELCHANGE |
Элемент управления «Переключатель» Radio Button control | BN_CLICKED BN_CLICKED |
Элемент управления «Надпись» Static Text control | (неприменимо) (not applicable) |
Элемент управления «Рисунок» Picture control | (неприменимо) (not applicable) |
Элемент управления Rich Edit 2.0 Rich Edit 2.0 control | EN_CHANGE EN_CHANGE |
Элемент управления «Полоса прокрутки» Scroll bar control | NM_THEMECHANGED NM_THEMECHANGED |
Дополнительные сведения об использовании элемента управления richedit 1,0 с MFC см. в разделе использование элемента управления RichEdit 1,0 с примерами элементов управления MFC и Rich Edit. For more information on using the RichEdit 1.0 control with MFC, see Using the RichEdit 1.0 Control with MFC and Rich Edit Control Examples.
Пользовательские элементы управления Custom Controls
Редактор диалоговых окон позволяет использовать существующие настраиваемые или пользовательские элементы управления в шаблоне диалогового окна. The Dialog Editor lets you use existing custom or user controls in a dialog box template.
В этом смысле пользовательские элементы управления не следует путать с элементами управления ActiveX. Custom controls in this sense are not to be confused with ActiveX controls. Элементы управления ActiveX иногда называются пользовательскими элементами управления OLE. ActiveX controls were sometimes called OLE custom controls. Кроме того, не путайте эти элементы управления с элементами управления, рисуемыми владельцем в Windows. Also, don’t confuse these controls with the owner-drawn controls in Windows.
Эта функция предназначена для использования элементов управления, отличных от предоставляемых Windows. This functionality is intended to let you use controls other than those supplied by Windows. Во время выполнения элемент управления связывается с классом окна (а не с классом C++). At run time, the control is associated with a Window class (not the same as a C++ class). Более распространенный способ выполнения этой же задачи заключается в установке любого элемента управления, например статического элемента управления, в диалоговом окне. A more common way to accomplish the same task is to install any control, such as a static control, in your dialog box. Затем во время выполнения в функции онинитдиалог удалите этот элемент управления и замените его своим пользовательским элементом управления. Then at run time, in the OnInitDialog function, remove that control and replace it with your own custom control.
Это старая методика. This is an old technique. Сегодня рекомендуется в большинстве случаев написать элемент управления ActiveX или подкласс общего элемента управления Windows. Today you are advised in most cases to write an ActiveX control or subclass a Windows common control.
Для этих пользовательских элементов управления существует ограничение: For these custom controls, you are limited to:
Задание расположения в диалоговом окне. Setting the location in the dialog box.
Введите заголовок. Typing a caption.
Определение имени класса Windows элемента управления, так как код приложения должен зарегистрировать элемент управления по этому имени. Identifying the name of the control’s Windows class since your application code must register the control by this name.
Введите 32-разрядное шестнадцатеричное значение, устанавливающее стиль элемента управления. Typing a 32-bit hexadecimal value that sets the control’s style.
Задание расширенного стиля. Setting the extended style.
Устранение неполадок с созданием элементов управления и компонентов Troubleshoot Control and Component Authoring
В этом разделе перечислены следующие распространенные проблемы, возникающие при разработке компонентов и элементов управления. This topic lists the following common problems that arise when developing components and controls:
Не удается добавить элемент управления на панель элементов Cannot Add Control to Toolbox
Не удается выполнить отладку пользовательского элемента управления или компонента Windows Forms Cannot Debug the Windows Forms User Control or Component
Событие в производном элементе управления или компоненте вызывается дважды Event Is Raised Twice in Inherited Control or Component
Ошибка времени разработки: «Не удалось создать компонент имя компонента» Design-Time Error: «Failed to Create Component ‘Component Name‘»
Значок компонента не отображается на панели элементов Component Icon Does Not Appear in Toolbox
Не удается добавить элемент управления на панель элементов Cannot Add Control to Toolbox
Если вы хотите добавить на панель элементов настраиваемый элемент управления, созданный в другом проекте, или сторонний элемент управления, это необходимо сделать вручную. If you want to add a custom control that you created in another project or a third-party control to the Toolbox, you must do so manually. Если ваш элемент управления или компонент уже находится в текущем проекте, он отобразится на панели элементов автоматически. If the current project contains your control or component, it should appear in the Toolbox automatically. Дополнительные сведения см. в разделе Пошаговое руководство. Автоматическое заполнение панели элементов пользовательскими компонентами. For more information, see Walkthrough: Automatically Populating the Toolbox with Custom Components.
Добавление элемента управления на панель элементов To add a control to the Toolbox
Щелкните панель инструментов правой кнопкой мыши и выберите команду Выбрать элементы. Right-click the Toolbox and from the shortcut menu, select Choose Items.
Добавьте компонент в диалоговом окне Выбор элементов панели элементов. In the Choose Toolbox Items dialog box, add the component:
Чтобы добавить COM-компонент или элемент управления ActiveX, откройте вкладку COM-компоненты. If you want to add a COM component or ActiveX control, click the COM Components tab.
Если элемент управления указан в диалоговом окне, выделите его и нажмите кнопку ОК. If your control is listed in the dialog box, confirm it is selected, and then click OK.
Элемент управления будет добавлен на панель элементов. The control is added to the Toolbox.
Если элемент управления не указан в диалоговом окне, выполните следующие действия. If your control is not listed in the dialog box, do the following:
Элемент управления отобразится в диалоговом окне. Your control appears in the dialog box.
Выберите элемент управления и нажмите кнопку ОК. Confirm that your control is selected, and then click OK.
Элемент управления будет добавлен на панель элементов. Your control is added to the Toolbox.
Не удается выполнить отладку пользовательского элемента управления или компонента Windows Forms Cannot Debug the Windows Forms User Control or Component
Если элемент управления является производным от UserControl класса, можно отладить его поведение во время выполнения с тестовым контейнером. If your control derives from the UserControl class, you can debug its run-time behavior with the test container. Дополнительные сведения см. в разделе как проверить поведение Run-Time UserControl. For more information, see How to: Test the Run-Time Behavior of a UserControl.
Другие настраиваемые элементы управления и компоненты не являются автономными проектами Other custom controls and components are not stand-alone projects. и должны размещаться в приложении, таком как проект Windows Forms. They must be hosted by an application such as a Windows Forms project. Для выполнения отладки элемент управления или компонент необходимо добавить в проект Windows Forms. To debug a control or component, you must add it to a Windows Forms project.
Отладка элемента управления или компонента To debug a control or component
В меню Сборка выберите пункт Сборка решения, чтобы создать решение. From the Build menu, click Build Solution to build your solution.
В меню Файл выберите пункт Добавить, и затем Новый проект, чтобы добавить в приложение тестовый проект. From the File menu, choose Add, and then New Project to add a test project to your application.
В диалоговом окне Добавление нового проекта выберите в качестве типа проекта Приложение Windows. In the Add New Project dialog box choose Windows Application for the type of project.
В обозревателе решений щелкните узел Ссылки для своего нового проекта правой кнопкой мыши. In Solution Explorer, right-click the References node for the new project. В контекстном меню выберите пункт Добавить ссылку, чтобы добавить ссылку на проект, содержащий элемент управления или компонент. On the shortcut menu, click Add Reference to add a reference to the project containing the control or component.
Создайте экземпляр элемента управления или компонента в тестовом проекте. Create an instance of your control or component in the test project. Если компонент находится на панели элементов, его можно перетащить в область конструктора или создать экземпляр программными средствами, как показано в следующем примере кода. If your component is in the Toolbox, you can drag it to your designer surface, or you can create the instance programmatically, as shown in the following code example.
После этого отладку элемента управления или компонента можно выполнить в обычном режиме. You can now debug your control or component as usual.
Событие в производном элементе управления или компоненте вызывается дважды Event Is Raised Twice in Inherited Control or Component
Ошибка времени разработки: «Не удалось создать компонент ‘имя компонента'» Design-Time Error: «Failed to Create Component ‘Component Name'»
Компонент или элемент управления должен предоставлять конструктор без параметров без аргументов. Your component or control must provide a parameterless constructor with no parameters. Если в среде разработки создается экземпляр компонента или элемента управления, он не пытается предоставить какие-либо параметры для перегрузок конструктора, принимающих параметры. When the design environment creates an instance of your component or control, it does not attempt to provide any parameters to constructor overloads that take parameters.
STAThreadAttribute STAThreadAttribute
Значок компонента не отображается на панели элементов Component Icon Does Not Appear in Toolbox
При использовании ToolboxBitmapAttribute для связывания значка с пользовательским компонентом точечный рисунок не отображается на панели элементов для автоматически сформированных компонентов. When you use ToolboxBitmapAttribute to associate an icon with your custom component, the bitmap does not appear in the Toolbox for autogenerated components. Чтобы увидеть растровое изображение, перезагрузите элемент управления с помощью диалогового окна Выбор элементов панели элементов. To see the bitmap, reload the control by using the Choose Toolbox Items dialog box. Дополнительные сведения см. в разделе Практическое руководство. Предоставление точечного рисунка панели элементов для элемента управления. For more information, see How to: Provide a Toolbox Bitmap for a Control.
ОГЛАВЛЕНИЕ
Элементы управления диалогового окна
Шаблон устанавливает позицию, ширину, высоту, стиль, идентификаторы и класс окна для каждого элемента управления в диалоговом окне. Windows создает каждый элемент управления путем передачи их данных в функцию CreateWindowEx. Элементы управления создаются по порядку, в котором они установлены в шаблоне. Шаблон должен определить соответствующее число, тип и порядок элементов управления, чтобы гарантировать, что пользователь может сделать ввод необходимых данных, чтобы завершить команду, связанную с диалоговым окном.
Шаблон может также установить стили элементов управления, специфические для класса элементов управления окна. Например, шаблон, который определяет кнопку управления, должен дать кнопке управления стиль, такой как BS_PUSHBUTTON или BS_CHECKBOX. Windows передает стиль элемента управления в управляющую окном процедуру через посредство сообщения WM_CREATE, разрешая процедуре приспосабливать внешний вид и работу элемента управления.
Windows преобразует значения позиции координат, ширину и высоту из базовых единиц диалога в пиксели, перед передачей их в CreateWindowEx. Когда Windows создает элемент управления, он определяет диалоговое окно как родительское окно. Это означает, что Windows всегда воспринимает координаты расположения элемента управления как рабочие координаты, относительно верхнего левого угла рабочей области блока диалога.
Шаблон определяет класс окна для каждого элемента управления. Обычно диалоговое окно содержит элементы управления, принадлежащие предопределенным элементам управления класса окна, такие как кнопка и поле редактирования класса окна. В этом случае, шаблон определяет класс окна путем присваивания соответствующего предопределенного значения атому класса. Когда диалоговое окно содержит элемент управления, принадлежащий классу пользовательских элементов управления окна, шаблон дает название этого зарегистрированного класса окна или значение атома, в настоящее время связанного с этим названием.
Каждый элемент управления в диалоговом окне должен иметь уникальный идентификатор для отличия его от других элементов управления. Элементы управления передают информацию процедуре блока диалога посредством сообщения WM_COMMAND, так что идентификаторы элементов управления необходимы для процедуры, чтобы различать, какой элемент управления передал данное сообщение. Единственным исключением из этого правила являются идентификаторы статических элементов управления. Статические элементы управления не требуют уникального идентификатора, так как они не предают сообщения WM_COMMAND.
Чтобы разрешить пользователю закрыть диалоговое окно, шаблон должен установить, по крайней мере, одну командную кнопку и присвоить ей идентификатор управления IDCANCEL. Чтобы разрешить пользователю выбор между завершающей и отменяющей командами, связанными с диалоговым окном, шаблон должен установить две командные кнопки с надписями ОК и Отменить (Cancel) и управляющими идентификаторами IDOK и IDCANCEL, соответственно.