Создание ресурса диалогового окна
Чтобы создать диалоговое окно и создать ресурс диалогового окна, используйте редактор диалогов. В редакторе диалогов можно:
- Измените размер и расположение диалогового окна при отображении.
- Перетащите различные виды элементов управления из палитры элементов управления и удалите их в нужное место в диалоговом окне.
- Поместите элементы управления с кнопками выравнивания на панели инструментов.
- Проверьте диалоговое окно, имитируя внешний вид и поведение, которые он будет иметь в программе. В тестовом режиме можно управлять элементами управления диалогового окна, вводя текст в текстовых полях, нажимая кнопки и т. д.
По завершении ресурс шаблона диалогового окна хранится в файле скрипта ресурсов приложения. При необходимости его можно изменить позже. Полное описание создания и редактирования ресурсов диалоговых окон см. в разделах редактора диалогов. Этот метод также используется для создания ресурсов шаблона диалога для классов CFormView и CRecordView .
Когда внешний вид диалогового окна подходит для вас, создайте класс диалогов и сопоставите свои сообщения, как описано в разделе «Создание класса диалогов с помощью мастеров кода».
Создание модальных диалоговых окон и управление ими
Область применения:Visual Studio Visual Studio для Mac
Visual Studio Code ![]()
При создании модального диалогового окна в Visual Studio необходимо убедиться, что родительское окно диалогового окна отключено во время отображения диалогового окна, а затем повторно включите родительское окно после закрытия диалогового окна. Если этого не сделать, может появиться сообщение об ошибке: Microsoft Visual Studio не может завершить работу, так как модальное диалоговое окно активно. Закройте активное диалоговое окно и повторите попытку.
Это можно сделать двумя способами. Рекомендуемый способ, если у вас есть диалоговое окно WPF, является производный от DialogWindowнего, а затем вызов ShowModal для отображения диалогового окна. Если это сделать, вам не нужно управлять модальным состоянием родительского окна.
Если диалоговое окно не является WPF или по какой-либо другой причине вы не можете наследить класс DialogWindowдиалогового окна, необходимо получить родительский элемент диалогового GetDialogOwnerHwnd окна путем вызова модального состояния самостоятельно, EnableModeless вызвав метод с параметром 0 (false), прежде чем отображать диалоговое окно и снова вызывать метод с параметром 1 (true) после закрытия диалогового окна.
Создание диалогового окна, производного от DialogWindow
- Создайте проект VSIX с именем OpenDialogTest и добавьте команду меню с именем OpenDialog. Дополнительные сведения о том, как это сделать, см. в разделе «Создание расширения» с помощью команды меню.
- Чтобы использовать DialogWindow класс, необходимо добавить ссылки на следующие сборки (на вкладке Framework диалогового окна «Добавить ссылку «).
- PresentationCore
- PresentationFramework
- WindowsBase
- System.Xaml
- В OpenDialog.cs добавьте следующую using инструкцию:
using Microsoft.VisualStudio.PlatformUI;
class TestDialogWindow : DialogWindow
internal TestDialogWindow()
TestDialogWindow testDialog = new TestDialogWindow(); testDialog.ShowModal();
Создание диалогового окна и управление ими, не производных от DialogWindow
- Для этой процедуры можно использовать решение OpenDialogTest , созданное в предыдущей процедуре, с теми же ссылками на сборки.
- Добавьте следующие using объявления:
using System.Windows; using Microsoft.Internal.VisualStudio.PlatformUI;
class TestDialogWindow2 : Window
private IVsUIShell shell;
public TestDialogWindow2(IVsUIShell uiShell)
IVsUIShell uiShell = (IVsUIShell)ServiceProvider.GetService(typeof(SVsUIShell)); TestDialogWindow2 testDialog2 = new TestDialogWindow2(uiShell); //get the owner of this dialog IntPtr hwnd; uiShell.GetDialogOwnerHwnd(out hwnd); testDialog2.WindowStartupLocation = System.Windows.WindowStartupLocation.CenterOwner; uiShell.EnableModeless(0); try < WindowHelper.ShowModal(testDialog2, hwnd); >finally < // This will take place after the window is closed. uiShell.EnableModeless(1); >
Диалоговые окна
Приложения для Windows часто взаимодействуют с пользователем с помощью диалоговых окон. Класс CDialog предоставляет интерфейс для управления диалоговыми окнами, редактор диалоговых окон Visual C++ упрощает проектирование диалоговых окон и создание ресурсов шаблона диалога, а мастера кода упрощают процесс инициализации и проверки элементов управления в диалоговом окне и сбора значений, введенных пользователем.
Диалоговые окна содержат элементы управления, в том числе:
- Общие элементы управления Windows, такие как поля редактирования, pushbuttons, списки, поля со списком, элементы управления деревом, элементы управления списком и индикаторы хода выполнения.
- Элементы activeX.
- Элементы управления, нарисованные владельцем: элементы управления, ответственные за рисование в диалоговом окне.
Большинство диалоговых окон являются модальными, которые требуют, чтобы пользователь закрыл диалоговое окно перед использованием любой другой части программы. Но можно создать бессерверные диалоговые окна, которые позволяют пользователям работать с другими окнами во время открытия диалогового окна. MFC поддерживает оба типа диалогового окна с классом CDialog . Элементы управления упорядочены и управляются с помощью ресурса шаблона диалогового окна, созданного с помощью редактора диалогов.
Листы свойств, также известные как диалоговые окна вкладок, — это диалоговые окна, содержащие «страницы» различных элементов управления диалоговым окном. Каждая страница содержит папку «tab» в верхней части страницы. Щелкнув вкладку, перейдите к этой странице в передней части диалогового окна.
Что вы хотите узнать больше о
- Пример. Отображение диалогового окна через команду меню
- Компоненты диалогового окна в платформе
- Диалоговые окна модального и безрежимного режима
- Листы свойств и страницы свойств в диалоговом окне
- Создание ресурса диалогового окна
- Создание класса диалогового окна с помощью мастеров кода
- Работа с диалоговым окнами в MFC
- Обмен данными диалоговых окон (DDX) и проверка (DDV)
- Безопасный доступ к элементам управления в диалоговом окне
- Сопоставление сообщений Windows с классом
- Часто переопределяемые функции-члены
- Часто добавляемые функции-члены
- Общие классы диалогов
- Диалоговые окна в OLE
- Создайте приложение, пользовательский интерфейс которого является диалоговым окном: см. CMNCTRL1 или CMNCTRL2 примеры программ. Мастер приложений также предоставляет этот параметр.
- Примеры
Диалоговое окно «Необходимые компоненты»
Область применения:
Visual Studio Visual Studio для Mac
Visual Studio Code ![]()
В диалоговом окне Необходимые компоненты определяются устанавливаемые необходимые компоненты, способ их установки, а также порядок установки пакетов.

Чтобы открыть это диалоговое окно, выберите узел проекта в обозревателе решений и затем Проект>Свойства. Когда откроется Конструктор проектов, перейдите на вкладку Публикация и выберите Необходимые компоненты. Чтобы открыть проекты установки, в меню Проект выберите пункт Свойства. В открывшемся диалоговом окне Окна свойств щелкните Необходимые компоненты.
В ClickOnce для .NET Core 3.1 и .NET 5 или более поздней версии вы устанавливаете свойства развертывания с помощью средства публикации вместо мастера публикации и страницы публикации конструктора проектов. Дополнительные сведения см. в статье «Развертывание приложения .NET Для Windows с помощью ClickOnce и ClickOnce для .NET».
Список элементов пользовательского интерфейса (UIElement)
| Элемент | Description |
|---|---|
| Создать программу установки для необходимых компонентов | Включает необходимые компоненты в программу установки приложения (Setup.exe), чтобы они устанавливались до установки приложения в порядке зависимости. По умолчанию этот параметр выбран. Если он не выбран, файл Setup.exe не создается. |
| Выберите устанавливаемые необходимые компоненты | Определяет, нужно ли устанавливать компоненты, такие как .NET Framework и библиотеки времени выполнения C++. |
Например, установка флажка рядом с компонентом SQL Server 2012 Express означает, что программа установки должна проверять, установлен ли этот компонент на целевом компьютере, и в случае отсутствия устанавливать его.
Сведения о размещении необходимых компонентов см. в разделе Создание пакетов начального загрузчика.
Информация о необходимых компонентах
Необходимые компоненты, отображаемые в диалоговом окне Необходимые компоненты, могут отличаться от показанных в следующем списке. Пакеты необходимых компонентов, перечисленные в диалоговом окне Необходимые компоненты, устанавливаются автоматически при первом открытии этого диалогового окна. В случае последующего изменения целевой платформы проекта следует выбрать пакеты необходимых компонентов вручную, чтобы они соответствовали новой целевой платформе.
— .NET Framework версий 2.0, 3.0 и 3.5.
— Поддержка всех версий платформы .NET Framework в 32-разрядных (x86) и 64-разрядных (x64) операционных системах.
— Языковые пакеты для каждой версии платформы .NET Framework, устанавливаемой с помощью пакета.
— Пакеты обновления платформы .NET Framework 2.0 и 3.0.
См. также
- Страница публикации в конструкторе проектов
- Обязательные требования к развертыванию приложений
- Предварительные условия для развертывания 64-разрядных приложений
- Общие сведения о настройке для платформы
