Название разных страниц на диалоговых панелях windows

Работа по теме: LEKCII. Глава: Диалоговые панели. ВУЗ: МГТУ.

Диалоговые панели

Обычно для
объединения органов управления
используются временные (pop-up) окна,
созданные на базе предопределенного
внутри Windows класса окон — класса диалоговых
панелей (dialоg window class). На поверхности
такого окна располагаются дочерние
окна — органы управления. Функция окна
для класса диалоговых панелей, определенная
в Windows, выполняет практически всю работу,
необходимую для организации взаимодействия
органов управления с приложением.

Для создания
каждого органа управления мы вызывали
функцию CreateWindow, которой требовалось
указывать расположение и размеры органов
управления. Поэтому при необходимости
внесения изменений во внешний вид
приложения приходилось изменять исходные
тексты. В функцию родительского окна
приходили все сообщения и извещения от
всех органов управления. Большие проблемы
возникали при необходимости передачи
фокуса ввода от одного органа управления
к другому — функция родительского окна
должна была управлять передачей фокуса
ввода и организовывать взаимодействие
органов управления самостоятельно.

Диалоговые панели
значительно упрощают использование
органов управления, так как функция
окна, соответствующая классу диалоговых
панелей и расположенная внутри Windows,
обеспечивает как взаимодействие органов
управления между собой, так и их
взаимодействие с приложением. В частности,
эта функция обеспечивает передачу
фокуса ввода от одного органа управления
к другому при помощи клавиши <Tab> и
клавиш перемещения курсора <Up> и
<Down>, выполняет обработку сообщений
от клавиш <Enter> и <Esc>.

Что же касается
расположения органов управления на
поверхности диалоговой панели, то для
этого можно использовать три способа.

Первый способ
предполагает включение в файл ресурсов
приложения текстового описания шаблона
диалоговой панели. Это описание можно
создать при помощи любого текстового
редактора:

Второй способ
размещения органов управления на
поверхности диалоговой панели предполагает
использование специального редактора
диалогов, такого как Borland Resource Workshop или
Microsoft Dialog Editor. Эти редакторы позволяют
нарисовать диалоговую панель и сохранить
ее текстовое описание в файле ресурсов
приложения.

Третий способ
предполагает создание шаблона диалоговой
панели в памяти во время работы приложения.
Этот способ используется редко, обычно
только в тех случаях, когда внешний вид
диалоговой панели нельзя определить
на этапе создания приложения.

Создание
диалоговой панели

Диалоговая панель
обычно представляет собой временное
(pop — up) окно, хотя допустимо использовать
и перекрывающиеся (overlapped) окна. Для
создания диалоговой панели вам не
требуется вызывать функцию CreateWindow, так
как в программном интерфейсе Windows
определены функции, специально
предназначенные для создания диалоговых
панелей.

Разумеется, перед
вызовом этих функций необходимо создать
шаблон диалоговой панели. Это можно
сделать, использовав один из описанных
выше способов.

Помимо шаблона,
перед созданием диалоговой панели вам
следует определить специальную функцию
диалога, в которую будут поступать
сообщения от функции окна диалоговой
панели (которые, в свою очередь, поступают
туда от органов управления). Функция
диалога является функцией обратного
вызова и должна быть описана с
использованием ключевого слова _export.
Вместо этого имя функции обратного
вызова можно занести в раздел EXPORTS файла
определения модуля.

Итак, для создания
диалоговой панели вы должны предпринять
следующие действия:

создать шаблон
диалога;

определить функцию
диалога;

вызвать одну из
функций создания диалога.

Создание шаблона
диалога

Для создания
шаблона диалога лучше всего воспользоваться
редактором диалога Borland Resource Workshop или
Microsoft Dialog Editor. Опишем процесс создания
диалога с помощью редактора диалога,
входящего в состав приложения Resource
Workshop.

Использование
текстового редактора

Вы можете создать
диалоговую панель без применения
редакторов диалога, создав описание
шаблона при помощи любого текстового
редактора, сохраняющего текст без
атрибутов форматирования.

Описание шаблона

Описание шаблона
имеет следующий вид:

nameID DIALOG [load] [mem] x,
y, width, height

CAPTION «Заголовок
диалоговой панели»

STYLE Стиль

BEGIN . . .

. . .

. . .

END

В этом описании
nameID используется для идентификации
шаблона диалоговой панели и может
указываться либо в виде текстовой
строки, либо в виде числа от 1 до 65535.

Параметр load —
необязательный. Он используется для
определения момента загрузки диалоговой
панели в память. Если этот параметр
указан как PRELOAD, диалоговая панель
загружается в память сразу после запуска
приложения. По умолчанию используется
значение LOADONCALL, при использовании
которого загрузка шаблона в память
происходит только при отображении
диалоговой панели.

Параметр mem также
необязательный. Он влияет на тип
выделяемой для хранения шаблона памяти
и может указываться как FIXED (ресурс
всегда остается в фиксированной области
памяти), MOVEABLE (при необходимости ресурс
может перемещаться в памяти, это значение
используется по умолчанию) или DISCARDABLE
(если ресурс больше не нужен, занимаемая
им память может быть использована для
других задач). Значение DISCARDABLE может
использоваться вместе со значением
MOVEABLE.

Параметры x и y
определяют, соответственно, x — координату
левой границы диалоговой панели и y —
координату верхней стороны диалоговой
панели. Координаты могут принимать
значения от 0 до 65535.

Параметры width и
height определяют, соответственно, ширину
и высоту диалоговой панели. Эти параметры
могут находиться в диапазоне от 1 до
65535.

Для описания
шаблонов диалоговых панелей используется
специальная координатная система, в
которой размер единицы длины в пикселях
зависит от размера системного шрифта.
Такая координатная система позволяет
создавать диалоговые панели, размер
которых не зависит от режима работы
видеоадаптера. Это возможно благодаря
тому, что размер системного шрифта в
пикселях зависит от разрешения — в режиме
800х600 точек размеры системного шрифта
больше, чем, например, в режиме 640х480
точек.

Одна единица длины
в координатной системе, используемой
при описании ширины элементов шаблонов
диалоговых панелей, составляет четверть
средней ширины символов системного
шрифта, а при описании высоты (или
вертикальных размеров) — восьмую часть
высоты символов системного шрифта. Так
как высота символов системного шрифта
примерно в два раза больше средней
ширины этих символов, единица длины в
этой системе координат имеет одинаковый
размер по вертикали и горизонтали. Эта
единица называется диалоговая единица
(dialog unit).

Размер единицы
измерения dialog unit можно получить при
помощи функции GetDialogBaseUnits:

DWORD WINAPI
GetDialogBaseUnits(void);

Младшее слово
возвращаемого значения представляет
собой ширину в пикселях диалоговой
единицы длины, старшее — высоту.

Оператор CAPTION
предназначен для определения заголовка
диалоговой панели.

Оператор STYLE
используется для назначения стиля окну
диалоговой панели. В качестве стиля вы
можете использовать комбинацию
символических имен, определенных в
файле windows.h и имеющих префикс WS_. Специально
для диалоговых панелей в этом файле
определены несколько констант с префиксом
DS_.

Имя константы

Описание

DS_LOCALEDIT

При использовании
этого стиля редакторы текста, созданные
в диалоговой панели, будут использовать
память в сегменте данных приложения.
В этом случае можно использовать
сообщения EM_GETHANDLE и EM_SETHANDLE

DS_MODALFRAME

Создается
модальная диалоговая панель (см. ниже)

DS_NOIDLEMSG

Если этот стиль
не указан, когда диалоговая панель
переходит в видимое состояние
(отображается), Windows посылает родительскому
окну (создавшему диалоговую панель),
сообщение WM_ENTERIDLE

DS_SYSMODAL

Создается
системная модальная диалоговая панель

Для создания
стандартной диалоговой панели используются
стили WS_POPUP, WS_BORDER, WS_SYSMENU, WS_CAPTION,
DS_MODALFRAME. Если нужно создать диалоговую
панель с рамкой, но без заголовка,
используется стиль WS_DLGFRAME.

Отметим, что
диалоговые панели бывают трех типов:
модальные,
системные модальные, и немодальные.

При выводе на экран
модальной диалоговой панели работа
приложения приостанавливается. Функции
главного окна приложения и всех дочерних
окон перестают получать сообщения от
мыши и клавиатуры. Все эти сообщения
попадают в временное (pop — up) окно диалоговой
панели. Когда работа пользователя с
диалоговой панелью будет завершена,
главное окно приложения и его дочерние
окна будут разблокированы. Заметьте,
что диалоговая панель не должна
создаваться как дочернее окно — в этом
случае при активизации диалоговой
панели она будет заблокирована наряду
с остальными дочерними окнами и приложение
«зависнет».

Модальная диалоговая
панель, тем не менее, позволяет пользователю
переключиться на работу с другими
приложениями. Если вам требуется
запретить такое переключение, используйте
системные модальные диалоговые панели.
Типичным примером такой панели является
панель «Exit Windows», появляющаяся на
экране перед завершением работы Windows.
Пока эта панель находится на экране, вы
не можете переключиться на работу с
другими приложениями.

Немодальная
диалоговая панель не блокирует работу
основного окна приложения и его дочерних
окон. Вы можете работать как с диалоговой
панелью, так и с окном приложения.
Разумеется, вам также доступна возможность
переключения на другие запущенные
приложения.

Помимо операторов
STYLE и CAPTION, описание шаблона может
содержать операторы CLASS и FONT.

Оператор CLASS
используется в тех случаях, когда
диалоговая панель использует свой
собственный класс, а не тот, который
определен для диалоговых панелей
операционной системой Windows:

CLASS «PrivateDlgClass»

В этом томе мы не
будем рассматривать создание диалоговых
панелей на базе собственных классов.

Перед созданием
диалоговой панели с собственным классом
этот класс должен быть зарегистрирован.
При этом в структуре WNDCLASS, используемой
для регистрации, поле cbWndExtra должно иметь
значение DLGWINDOWEXTRA.

Оператор FONT
позволяет задать шрифт, с использованием
которого Windows будет писать текст в
диалоговой панели:

FONT 10, «MS Serif»

Первый параметр
оператора FONT указывает размер шрифта
в пунктах, второй — название шрифта,
определенного в файле win.ini. Отметим, что
единственный шрифт, присутствие которого
гарантируется — это системный шрифт.
Все остальные шрифты можно отключить
при помощи приложения Control Panel.

Описание всех
органов управления, расположенных на
поверхности диалоговой панели, должно
находиться между строками BEGIN и END.

Для описания
органов управления используются три
формата строк.

Первый формат
можно использовать для всех органов
управления, кроме списков, редакторов
текста и полосы просмотра:

CtlType
«Текст»,
ID, x, y, width, height [,style]

Вместо CtlType в
приведенной выше строке должно находиться
обозначение органа управления.

Параметр «Текст»
определяет текст, который будет написан
на органе управления.

Параметр ID —
идентификатор органа управления. Этот
идентификатор передается вместе с
сообщением WM_CONTROL.

Параметры x и y
определяют координаты органа управления
относительно левого верхнего угла
диалоговой панели. Используется единица
длины dialog unit.

Параметры width и
height определяют, соответственно, ширину
и высоту органа управления в единицах
длины dialog unit.

Параметр style
определяет стиль органа управления
(необязательный параметр). Это тот самый
стиль, который указывается при вызове
функции CreateWindow.

Приведем список
обозначений органов управления и
возможных стилей для первого формата.

Обозначение
органа управления

Класс окна

Описание и стиль,
используемый по умолчанию

CHECHBOX

button

Переключатель
в виде прямоугольника BS_CHECKBOX, WS_TABSTOP

CTEXT

static

Строка текста,
выровненная по центру SS_CENTER, WS_GROUP

DEFPUSHBUTTON

button

Кнопка, выбираемая
в диалоговой панели по умолчанию
BS_DEFPUSHBUTTON, WS_TABSTOP

GROUPBOX

button

Прямоугольник,
объединяющий группу органов управления
BS_GROUPBOX

ICON

static

ПиктограммаSS_ICON
Параметры width, height и style можно не
указывать

LTEXT

static

Строка текста,
выровненная по левой границе органа
управления SS_LEFT, WS_GROUP

PUSHBUTTON

button

КнопкаBS_PUSHBUTTON,
WS_TABSTOP

RADIOBUTTON

button

Переключатель
в виде кружка (радиопереключатель)
BS_RADIOBUTTON, WS_TABSTOP

RTEXT

static

Строка текста,
выровненная по правой границе органа
управления SS_RIGHT, WS_GROUP

Стили WS_TABSTOP и
WS_GROUP будут описаны позже.

Второй формат
используется для описания списков,
редакторов текста и полос просмотра:

CtlType ID,
x, y, width, height [,style]

В этом формате нет
параметра «Текст», остальные
параметры используются так же, как и в
первом формате.

Приведем список
обозначений органов управления и
возможных стилей для второго формата.

Обозначение
органа управления

Класс окна

Описание и стиль,
используемый по умолчанию

COMBOBOX

combobox

Список с окном
редактирования CBS_SIMPLE, WS_TABSTOP

LISTBOX

listbox

Список
LBS_NOTIFY, WS_BORDER

EDITTEX

edit

Редактор
текста
ES_LEFT, WS_BORDER, WS_TABSTOP

SCROLLBARS

scrollbar

Полоса
просмотраSBS_HORZ

Третий формат
описания органов управления наиболее
универсальный:

CONTROL
«Текст»,
ID, class, style, x, y, width, height

Этот формат
позволяет описать орган управления,
принадлежащий классу class, который
указывается в виде строки символов. Вы
можете использовать третий формат для
описания предопределенных классов
органов управления, таких как «button»,
«combobox», «edit», «listbox»,
«scrollbar», «static». Данный формат
описания можно использовать для любых
органов управления.

Функция диалога

Перед созданием
диалоговой панели, помимо шаблона
диалога, программисту необходимо
подготовить функцию диалога, предназначенную
для обработки сообщений, поступающих
от диалоговой панели. Эта функция должна
быть описана следующим образом:

BOOL
CALLBACK
_export
DlgProc
(HWND
hdlg,
UINT
msg,
WPARAM
wParam,
LPARAM
lParam);

Вы можете выбрать
для функции диалога любое имя.

Параметры функции
диалога напоминают параметры функции
окна. Все они, за исключением первого,
имеют аналогичное назначение. Через
первый параметр функции диалога
передается идентификатор диалога hdlg,
а не идентификатор окна hwnd.

В отличие от функции
окна, функция диалога не должна вызывать
функцию DefWindowProc для тех сообщений,
которые она не желает обрабатывать.
Если функция диалога обрабатывает
сообщение, она должна вернуть значение
TRUE, а если нет — FALSE.

Функция диалога
не обрабатывает сообщения WM_CREATE, WM_PAINT,
WM_DESTROY. При инициализации диалога в
функцию диалога вместо сообщения
WM_CREATE передается сообщение WM_INITDIALOG. Как
правило, функция диалога всегда
обрабатывает сообщения WM_INITDIALOG и
WM_COMMAND.

Сообщение
WM_INITDIALOG использует параметры wParam и
lParam.

Параметр wParam
содержит идентификатор органа управления,
который первым получит фокус ввода
после отображения диалоговой панели.
Это первый орган управления, описанный
в шаблоне диалога со стилем WM_TABSTOP.
Параметр lParam содержит значение,
передаваемое приложением при создании
диалоговой панели.

Если в ответ на
сообщение WM_INITDIALOG функция диалога
возвращает значение TRUE, после создания
диалоговой панели фокус ввода передается
органу управления, идентификатор
которого был записан в параметре wParam.

Если при инициализации
диалоговой панели обработчик сообщения
WM_INITDIALOG устанавливает фокус ввода на
другой орган управления (вызывая функцию
SetFocus), функция диалога должна вернуть
значение FALSE.

Сообщение WM_COMMAND,
поступающее в функцию диалога, передает
сообщения или извещения от органов
управления, расположенных в диалоговой
панели. Крое этого, функция диалога
может получить это сообщение с параметром
wParam, равным константам IDOK и IDCANCEL, описанным
в файле windows.h.

Сообщение с
параметром IDOK поступает в функцию
диалога в том случае, если пользователь
нажал клавишу <Enter> в момент, когда
ни одна из кнопок, расположенных в
диалоговой панели, не имеет фокус ввода,
и ни одна из кнопок не имеет стиль
WS_DEFPUSHBUTTON. Если в диалоговой панели есть
кнопка со стилем WS_DEFPUSHBUTTON, в описанной
ситуации в функцию диалога поступает
сообщение WM_COMMAND с параметром wParam, равным
идентификатору этой кнопки.

Сообщение с
параметром IDCANCEL появится тогда, когда
пользовательзакроет диалоговую панель
с помощью системного меню или клавиши
<Esc>.

Обычно в диалоговой
панели всегда создается одна клавиша,
имеющая стиль WS_DEFPUSHBUTTON. Как правило, на
этой клавише пишется слово «OK» и
она используется для нормального
завершения работы диалоговой панели.
Для этой клавиши имеет смысл использовать
идентификатор IDOK.

Еще одна клавиша,
присутствующая практически во всех
диалоговых панелях, имеет надпись
«Cancel» и используется для отмены
диалоговой панели. Если определить
идентификатор этой клавиши как IDCANCEL,
вы сможете использовать единый обработчик
сообщения для отмены диалоговой панели
при помощи кнопки и при помощи системного
меню или клавиши <Esc>.

Функции для
создания диалоговой панели

В программном
интерфейсе Windows определены восемь
функций, предназначенных для создания
модальных и немодальных диалоговых
панелей.

Для создания
модальной диалоговой панели чаще всего
используется функция DialogBox:

int WINAPI DialogBox(
HINSTANCE hInstance, LPCSTR lpszTemplate, HWND hwndOwner, DLGPROC
dlgprc);

Через параметр
hInstance необходимо передать идентификатор
текущей копии приложения.

Параметр lpszTemplate
представляет собой указатель на строку
имени шаблона, указанном в операторе
DIALOG текстового описания шаблона.

Параметр hwndOwner —
идентификатор окна, создавшего диалоговую
панель.

Последний параметр,
dlgprc, представляет собой адрес функции
диалога.

Если при создании
диалоговой панели ей необходимо передать
параметр, воспользуйтесь функцией
DialogBoxParam:

int WINAPI DialogBoxParam(
HINSTANCE hInstance, LPCSTR lpszTemplate, HWND hwndOwner, DLGPROC
dlgprc, LPARAM lParamInit);

Эта функция
полностью аналогична функции DialogBox, за
исключением дополнительного параметра
lParamInit. Значение этого параметра передается
через параметр lParam сообщения WM_INITDIALOG и
может быть проанализировано на этапе
создания диалоговой панели.

Как мы уже говорили,
существует редко используемая возможность
создания диалоговой панели с помощью
шаблона, сформированного непосредственно
в памяти (а не загруженного из ресурсов
приложения). Для создания таких диалоговых
панелей предназначены функции
DialogBoxIndirect и DialogBoxIndirectParam.

Функция
DialogBoxIndirect аналогична функции DialogBox, но
в качестве второго параметра в ней
используется не указатель на строку
имени шаблона, а идентификатор глобального
блока памяти, в котором подготовлен
шаблон:

int WINAPI
DialogBoxIndirect( HINSTANCE hInstance, HGLOBAL hglbDlgTemplate,
HWND hwndOwner, DLGPROC dlgprc);

Функция
DialogBoxIndirectParam аналогична
функции
DialogBoxIndirect, но
имеет
дополнительный
параметр
lParamInit:

int WINAPI
DialogBoxIndirectParam( HINSTANCE hInstance, HGLOBAL
hglbDlgTemplate, HWND hwndOwner, DLGPROC dlgprc, LPARAM
lParamInit);

Для
создания
немодальных
диалоговых
панелей
используются
функции
CreateDialog, CreateDialogParam, CreateDialogIndirect,
CreateDialogIndirectParam. Эти
функции
имеют
параметры,
аналогичные
параметрам
функций
DialogBox, DialogBoxParam, DialogBoxParamIndirect:

HWND WINAPI
CreateDialog(HINSTANCE hInstance, LPCSTR lpszTemplate, HWND
hwndOwner, DLGPROC dlgprc);

HWND WINAPI
CreateDialogParam(HINSTANCE hInstance, LPCSTR lpszTemplate, HWND
hwndOwner, DLGPROC dlgprc, LPARAM lParamInit);

HWND WINAPI
CreateDialogIndirect(HINSTANCE hInstance, HGLOBAL hglbDlgTemplate,
HWND hwndOwner, DLGPROC dlgprc);

HWND WINAPI
CreateDialogIndirectParam( HINSTANCE hInstance, HGLOBAL
hglbDlgTemplate, HWND hwndOwner, DLGPROC dlgprc, LPARAM
lParamInit);

Функции
DialogBox, DialogBoxParam, DialogBoxIndirect, и
DialogBoxIndirectParam возвращают
значение,
передаваемое
при
завершении
работы
диалоговой
панели
с
помощью
функции
EndDialog.

Функция EndDialog имеет
следующий прототип:

void WINAPI
EndDialog(HWND hdlg, int nResult);

В качестве первого
параметра функции необходимо указать
идентификатор завершаемой диалоговой
панели, который передается в функцию
диалога через параметр hdlg.

Функции CreateDialog,
CreateDialogParam, CreateDialogIndirect, и CreateDialogIndirectParam
возвращают идентификатор окна для
созданной диалоговой панели.

Сообщения для
органов управления

Органы управления,
расположенные на поверхности диалоговой
панели, посылают в функцию диалога
сообщение WM_COMMAND. В свою очередь, приложение
может посылать различные сообщения
органам управления, вызывая функцию
SendMessage.

Использование
функции SendMessage

Первый параметр
функции SendMessage является идентификатором
окна, функция которого должна получить
сообщение. Если вы создаете модальную
диалоговую панель, функция диалога
получает идентификатор окна диалоговой
панели. Вам же нужны идентификаторы
окон отдельных органов управления.

Программный
интерфейс Windows содержит специальную
функцию, предназначенную для определения
идентификаторов окна органов управления
по идентификатору окна диалога и
идентификатору самого органа управления.
Эта функция называется GetDlgItem:

HWND WINAPI GetDlgItem(HWND
hdlg, int idControl);

В качестве параметра
hdlg этой функции необходимо передать
идентификатор окна диалоговой панели.
Для модальных диалоговых панелей этот
идентификатор можно определить только
внутри функции диалога (он передается
через первый параметр функции диалога).
Идентификатор окна немодальной диалоговой
панели возвращается функциями, создающими
такую панель, например, функцией
CreateDialog.

Второй параметр
является идентификатором органа
управления, указанным в шаблоне диалоговой
панели.

Для того чтобы
установить переключатель с идентификатором
IDC_SWITCH во включенное состояние, вы можете
вызывать функцию SendMessage
следующим
образом:

SendMessage(GetDlgItem(hdlg,
IDC_SWITCH),

BM_SETCHECK,
TRUE,
0L);

Зная идентификатор
окна органа управления, вы можете
получить идентификатор самого органа
управления, т. е. решить задачу, обратную
выполняемой функцией DetDlgItem. Для этого
следует воспользоваться функцией
GetWindowWord, передав ей в качестве второго
параметра константу GWW_ID:

nIDControl =
GetWindowWord(hwndControl, GWW_ID);

Эта функция
возвращает значения из области
дополнительной памяти, определенной
при регистрации класса окна. Напомним,
что размер дополнительной области
памяти задается значением, записанным
в элементе cbWndExtra структуры WNDCLASS.

Использование
специальных функций

Для упрощения
работы с органами управления, расположенными
в диалоговых панелях, в программном
интерфейсе Windows определены специальные
функции. При использовании этих функций
вам не требуется указывать идентификаторы
окна органов управления, достаточно
знать идентификаторы самих органов
управления, определенные в описании
шаблона.

Для посылки
сообщения органу управления удобно
использовать функцию SendDlgItemMessage:

LRESULT WINAPI
SendDlgItemMessage( HWND hdlg, int idDlgItem,

UINT uMsg, WPARAM wParam,
LPARAM lParam);

В качестве параметра
hdlg этой функции необходимо указать
идентификатор окна диалоговой панели.
Параметр idDlgItem определяет идентификатор
органа управления, которому предназначается
сообщение. Остальные три параметра этой
функции содержат, соответственно, код
сообщения и параметры, передаваемые
вместе с сообщением.

Для выполнения
некоторых часто использующихся операций
с органами управления в программном
интерфейсе Windows определены специальные
функции.

В частности, для
заполнения списка LISTBOX именами файлов,
каталогов и дисковых устройств
предназначена функция DlgDirList:

int WINAPI DlgDirList(HWND
hdlg, LPSTR lpszPath, int idListBox, int idStatic, UINT uFileType);

Первый параметр
этой функции указывает идентификатор
окна диалоговой панели.

Параметр lpszPath —
указатель на строку, содержащую шаблон
для имен файлов.

Параметр idListBox
перед вызовом функции должен содержать
идентификатор заполняемого списка.

В качестве параметра
idStatic вы должны указать идентификатор
статического органа управления, в
который будет записана строка полного
пути к текущему каталогу, или NULL, если
статический орган управления не
используется.

И, наконец, последний
параметр этой функции определяет тип
файлов, имена которых заносятся в список,
а также указывают на необходимость
записи в список имен каталогов и дисковых
устройств. Этот параметр должен быть
указан как логическая комбинация
констант с префиксом имени DDL_ (вы уже
знакомы с этими константами).

Аналогичная функция
предусмотрена и для списка COMBOBOX:

int WINAPI
DlgDirListComboBox (HWND hdlg, LPSTR lpszPath, int idListBox,

int
idStatic,
UINT
uFileType);

Назначение
параметров этой функции полностью
аналогично назначению параметров
функции DlgDirList.

Функция DlgDirSelect
предназначена для получения из списка
LISTBOX (подготовленного с помощью функции
DlgDirList) строки, выбранной пользователем:

BOOL WINAPI DlgDirSelect(HWND
hdlg, LPSTR lpszBuffer, int idListBox);

Параметр hdlg
определяет диалоговую панель. Нужный
список задается параметром idListBox.
Выбранная строка будет записана в буфер,
адрес которой указан с помощью параметра
lpszBuffer. Размер буфера должен быть не
меньше 128 байт.

Аналогичная функция
предусмотрена для списка COMBOBOX:

BOOL WINAPI
DlgDirSelectComboBox (HWND hdlg, LPSTR lpszBuffer, int idListBox);

Если ваше приложение
будет работать в среде Windows версии 3.1
или более старшей версии, для получения
выбранной пользователем строки вы
можете использовать функции DlgDirSelectEx и
DlgDirSelectComboBoxEx:

BOOL WINAPI
DlgDirSelectEx(HWND hdlg, LPSTR lpszBuffer, int cbBufSize, int
idListBox);

BOOL WINAPI
DlgDirSelectComboBoxEx(HWND hdlg, LPSTR lpszBuffer, int cbBufSize,
int idListBox);

Эти функции
позволяют получить в буфер lpszBuffer размером
cbBufSize байт строку, выбранную пользователем
из списка с идентификатором idListBox,
расположенном в диалоговой панели hdlg.
Однако для выбранной строки выполняется
дополнительная обработка, а именно:
если выбрано имя каталога или дискового
устройства, функция удаляет из строки
квадратные скобки и символы «-«.

В программном
интерфейсе Windows имеется несколько
функций, облегчающих работу с редакторами
текстов, расположенных в диалоговых
панелях.

Функция SetDlgItemText
позволяет изменить заголовок органа
управления или записать текст в текстовый
редактор:

void WINAPI
SetDlgItemText(HWND hdlg, int idControl, LPCSTR lpszText);

Текстовая строка
lpszText записывается в орган управления
с идентификатором idControl, расположенным
в диалоговой панели hdlg.

Функция SetDlgItemInt
позволяет записать в заголовок органа
управления или текстовый редактор
текстовую строку, полученную после
преобразования целого числа в формат
строки символов:

void WINAPI SetDlgItemInt(HWND
hdlg, int idControl, UINT uValue, BOOL fSigned);

Для диалоговой
панели с идентификатором окна, равным
hdlg, эта функция записывает символьное
представление параметра uValue в заголовок
органа управления или редактор текста
с идентификатором idControl. Если параметр
fSigned указан как TRUE, значение uValue
интерпретируется как знаковое целое,
если FALSE — как беззнаковое целое.

Для получения
строки, связанной с органом управления,
расположенном в диалоговой панели,
можно использовать функцию GetDlgItemText:

int WINAPI GetDlgItemText(HWND
hdlg, int idControl, LPSTR lpszBuffer, int cbBufferSize);

Эта функция
записывает текст, связанный с органом
управления idControl, в буфер lpszBuffer, имеющий
размер cbBufferSize байт.

Предусмотрена
также функция, получающая из органа
управления текстовую строку и выполняющая
преобразование этой строки в целое
число:

UINT WINAPI
GetDlgItemInt (HWND hdlg, int idControl, BOOL FAR* lptTranslated,
BOOL fSigned);

Эта функция
возвращает целое число, которое образуется
после преобразования текста, связанного
с органом управления idControl в диалоговой
панели hdlg. Если параметр fSigned указан как
TRUE, преобразуемая строка интерпретируется
как символьное представление знакового
целого, если FALSE — как беззнакового
целого. В переменную, адрес которой
передается через параметр lptTranslated,
записывается код ошибки. Если преобразование
выполнено без ошибок, в переменную
записывается значение TRUE, в противном
случае — FALSE.

Есть также функции,
предназначенные для работы с
переключателями.

Функция CheckDlgButton
предназначена для изменения состояния
переключателя CHECKBOX (включения или
выключения):

void WINAPI
CheckDlgButton(HWND hdlg, int idButton, UINT uState);

Для переключателя
с идентификатором idButton, расположенного
в диалоговой панели hdlg, устанавливается
новое состояние в соответствии со
значением параметра uState. Для выключения
переключателя параметр uState должен иметь
нулевое значение. Если этот параметр
будет равен 1, переключатель будет
включен, а если 2 — переведен в неактивное
состояние.

Аналогичная функция
предусмотрена для переключателей
RADIOBUTTON:

void WINAPI
CheckRadioButton (HWND hdlg, int idFirstButton, int idLastButton,
int idCheckButton);

Эта функция может
обслуживать сразу группу переключателей,
имеющих идентификаторы от idFirstButton до
idLastButton. Она включает переключатель с
идентификатором idCheckButton, после чего
выключает все остальные переключатели
группы в указанном параметрами
idFirstButton и idLastButton диапазоне идентификаторов.

Для определения
текущего состояния переключателя вы
можете воспользоваться функцией
IsDlgButtonChecked:

UINT WINAPI
IsDlgButtonChecked(HWND hdlg, int idButton);

Эта функция
возвращает состояние переключателя с
идентификатором idButton, расположенного
в диалоговой панели hdlg. Если переключатель
находится в выключенном состоянии,
возвращается нулевое значение. Для
включенного переключателя возвращается
значение 1. Значение 2 соответствует
неактивному переключателю, изображенному
серым цветом. В случае ошибки возвращается
отрицательное значение -1.

Если ваше приложение
использует собственную логику для
передачи фокуса ввода между органами
управления, расположенными в диалоговой
панели, ему может потребоваться информация
о последовательности, в которой должен
передаваться фокус ввода. С помощью
функции GetNextDlgGroupItemприложение может
определить идентификатор окна предыдущего
или следующего органа управления в
группе:

HWND WINAPI
GetNextDlgGroupItem(HWND hdlg, HWND hwndControl, BOOL fPrevious);

В зависимости от
значения флага fPrevious функция возвращает
идентификатор предыдущего или следующего
органа управления группе относительно
органа управления с идентификатором
hwndControl. Если значение флага fPrevious равно
TRUE, функция возвращает идентификатор
окна для предыдущего органа управления
в группе, если FALSE — для следующего.

Функция
GetNextDlgTabItem позволяет определить
идентификатор окна для первого органа
управления, который имеет стиль WS_TABSTOP
и расположен после органа управления
с заданным идентификатором или перед
этим органом:

HWND WINAPI
GetNextDlgTabItem(HWND hdlg, HWND hwndControl, BOOL fPrevious);

Параметр hwndControl
определяет орган управления, начиная
с которого функция будет выполнять
поиск, параметр fPrevious определяет
направление поиска. Если значение
параметра fPrevious равно TRUE, функция ищет
предыдущий орган управления в группе,
если FALSE — следующий.

Следует упомянуть
еще две функции, имеющие отношение к
специфической системе координат,
принятой для работы с диалоговыми
панелями.

Функция MapDialogRect
преобразует координаты из единиц
диалоговой панели (dialog units) в пиксели:

void WINAPI
MapDialogRect(HWND hdlg, RECT FAR* lprc);

Преобразуемые
координаты необходимо записать в
структуру типа RECT, адрес которой
указывается во втором параметре функции.
Результат преобразования будет записан
в эту же структуру.

Функция
GetDialogBaseUnits возвращает двойное слово,
содержащее информацию о диалоговой
системе координат:

DWORD WINAPI
GetDialogBaseUnits(void);

Младшее слово
представляет собой ширину в пикселях
диалоговой единицы длины, старшее —
высоту.

Немодальные
диалоговые панели

Другой вид диалоговых
панелей, который мы рассмотрим, это
немодальные диалоговые панели (modeless
dialog boxes).

В отличие от
модальных диалоговых панелей блокирующих
при своем появлении родительское окно
и все дочерние окна родительского окна,
немодальные диалоговые панели работают
параллельно с другими окнами приложения
без взаимных блокировок.

Немодальные
диалоговые панели очень удобны для
объединения различных инструментальных
средств, предназначенных для работы с
объектом, расположенным в главном окне
или в дочернем окне, созданным главным
окном приложения.

Создание и
уничтожение немодальных диалоговых
панелей

Для создания
немодальных диалоговых панелей
используются описанные нами ранее
функции CreateDialog, CreateDialogParam, CreateDialogIndirect,
CreateDialogIndirectParam.

Все эти функции
возвращают идентификатор окна созданной
диалоговой панели, который можно
использовать для посылки сообщений
органам управления, расположенным в
этой панели.

Для обеспечения
автоматического отображения немодальной
диалоговой панели сразу после создания
стиль панели, описанный в шаблоне, должен
включать в себя константу WS_VISIBLE. В
противном случае для отображения
диалоговой панели придется вызывать
функцию ShowWindow. Стиль DS_MODALFRAME используется
только для модальных диалоговых панелей,
поэтому его указывать не надо.

Завершение работы
немодальной диалоговой панели следует
выполнять с помощью функции DestroyWindow,
указав ей в качестве параметра
идентификатор окна панели, полученный
от функции CreateDialog или от аналогичной
функции, создающей немодальную диалоговую
панель. Функция EndDialog должна использоваться
только для завершения работы модальных
диалоговых панелей.

Изменения в
цикле обработки сообщений

При создании
модальной диалоговой панели в приложении
создается второй цикл обработки
сообщений, который действует до завершения
работы модальной диалоговой панели.
Если же создается немодальная диалоговая
панель, сообщения от органов управления,
предназначенные для диалоговой панели,
проходят через общую очередь сообщений
приложения.

Для разделения
этих сообщений цикл обработки должен
вызывать функцию IsDialogMessage:

BOOL WINAPI
IsDialogMessage(HWND hwndDlg, MSG FAR* lpmsg);

Функция IsDialogMessage
определяет, предназначено ли сообщение,
определяемое параметром lpmsg, для
немодальной диалоговой панели с
идентификатором окна, равным hwndDlg. Если
предназначено, функция сама выполняет
обработку такого сообщения и возвращает
значение TRUE. В противном случае
возвращается значение FALSE.

Взаимодействие компьютера с пользователем с каждой новой версией операционной системы становится проще и понятнее. Это означает, что создатели пользовательского интерфейса — набора инструментов, позволяющих пользователю взаимодействовать с компьютером, — создают всё более сложные программы. А сам интерфейс становится более дружественным. Про такой говорят, что он сделан по принципу DWIM (Do What I Mean — «делай то, что я имею в виду»).

Современные операционные системы имеют графический интерфейс. Это значит, что команды управления устройством скрываются за графическими элементами, которыми управляет пользователь. В специальной литературе графический интерфейс иногда называют WIMP — это аббревиатура от Windows, Icons, Menus, Pointer — «окна, иконки, меню, указатель».

WIMP-интерфейс позволяет пользователю управлять программными и аппаратными ресурсами компьютера через окна, иконки, меню и указатели.

Графический интерфейс очень удобен для рядового пользователя, но для профессионального программиста он имеет некоторые недостатки, например, сама графическая оболочка занимает много места и замедляет работу компьютера. Кроме того, графические интерфейсы разных операционных систем затрудняют совместную работу.
Рассмотрим основные элементы графического интерфейса. Иллюстрировать наше исследование будем с помощью примеров операционной системы Windows.
Основными элементами графического интерфейса являются окна и меню.

Окна

Рассмотрим четыре основных вида окон: рабочий стол, диалоговое окно, окно папки и окно документа.

Рабочий стол — ключевое окно графической среды. В нём мы увидим такие элементы управления, как главное меню, значки, ярлыки, панель задач.

Кнопка Пуск открывает главное меню операционной системы.

Главное меню — это элемент управления рабочего стола, предназначенный для быстрого доступа к программам, документам, средствам настройки и поиска, избранным папкам и объектам. Завершение работы с операционной системой выполняется только с помощью главного меню. Открывается кнопкой «Пуск».

Значки обозначают программы и документы. Для запуска выполняется двойной щелчок мышью.

Ярлыки внешне отличаются от значков стрелкой в левом нижнем углу, но предоставляют быстрый доступ к программе, которая хранится в файловой системе, а на рабочий стол выведен ярлык для её быстрого запуска.

Скриншот 18-12-2021 010420.jpg

Рис. (1). Рабочий стол

Панель задач — элемент управления, отображает кнопку «Пуск», значки запущенных приложений, индикаторы, время.

Диалоговые окна бывают разными в зависимости от способа взаимодействия с пользователем. Это могут быть окна сообщений, в которых из управляющих элементов присутствуют только кнопки — элемент управления, при нажатии служит для выполнения действия, которое обозначено надписью на кнопке.

Скриншот 18-12-2021 010720.jpg

Рис. (2). Диалоговое окно

Или это могут быть более сложные окна настройки параметров. В них больше различных элементов управления. Рассмотрим элементы управления на примере окон настройки параметров «Шрифт» и «Табуляция».

Скриншот 18-12-2021 011036.jpg

Рис. (3). Настройки параметров

Списки

Элемент управления, служит для выбора из команд, доступных для выполнения

Раскрывающиеся списки

То же назначение, что и у списков, но для доступа к командам необходимо раскрыть список с помощью стрелки

Переключатели

Элемент управления, служит для выбора одного из нескольких вариантов

Флажки

Элемент управления, служит для выбора нескольких из нескольких вариантов

Кнопки

Элемент управления, при нажатии служит для выполнения действия, которое обозначено надписью на кнопке

Счётчики

Элемент управления, который при помощи пары стрелок увеличивает или уменьшает значение в связанном с ним поле

Ползунки

То же, что и счётчик, но значение в поле меняется плавно

Вкладки

Элемент управления, служит для отображения нескольких страниц, относящихся к одному диалоговому окну

Скриншот 18-12-2021 011751.jpg

Рис. (4). Окно папки

Строка меню

Перечень команд, которые можно выполнить в данном окне

Кнопки управления состоянием окна

Кнопки, позволяющие управлять окном: закрыть, развернуть/восстановить, свернуть на панель задач

Панель навигации

Представляет объекты файловой системы для быстрого перехода к ним из текущей папки

Адресная строка

Указывает путь доступа к текущей папке, содержит раскрывающийся список для удобного перемещения по файловой системе

Рабочая область

Окна и папки отображаются значками объектов.

Могут появляться полосы прокрутки

Полосы прокрутки

Позволяет прокручивать рабочую область по вертикали или по горизонтали

Границы окна

Рамка, ограничивающая окно со всех сторон

Строка состояния

Для дополнительной справочной информации

Область поиска

Служит для ввода информации о файле, который необходимо найти

Окно документа — здесь мы увидим все те же элементы графического интерфейса, с которыми уже успели познакомиться.

Скриншот 18-12-2021 013229.jpg

Рис. (5). Окно документа

Значок приложения

Содержит заголовок активного документа

Строка заголовка

Указывает активное приложение

Панель инструментов

Содержит значки инструментов, которые наиболее часто применяет пользователь

Линейка

Один из специальных инструментов текстового редактора

Меню

Графический интерфейс применяет два вида меню: главное меню и контекстное. С понятием и назначением главного меню мы уже познакомились, когда обсуждали элементы рабочего стола.

Контекстное меню — список команд, который вызывается пользователем для выбора необходимого действия над выбранным объектом.

Вызывается контекстное меню правой кнопкой мыши. Команды контекстного меню относятся только к тому объекту, для которого это меню вызвано.

Скриншот 18-12-2021 013755.jpg

Рис. (6). Контекстное меню

На рисунке ты видишь контекстное меню, вызванное к слову «команды». В меню перечислены все возможные действия, которые можно произвести с этим словом.

Источники:

Рис. 1. Рабочий стол. Автор: Операционная система и большая часть программ принадлежит Microsoft Corp. Остальные программы принадлежат G5 Entertainment AB, Gameloft SE, king.com Ltd, MyTona, Playrix Games, и Yandex. — скриншот, Добросовестное использование, https://ru.wikipedia.org/w/index.php?curid=5928961. (Дата обращения: 18.12.2021.)

Рис. 2. Диалоговое окно. © ЯКласс.

Рис. 3. Настройки параметров. © ЯКласс.

Рис. 4. Окно папки. © ЯКласс.

Рис. 5. Окно документа. © ЯКласс.

Рис. 6. Контекстное меню. © ЯКласс.

Содержание

  1. Перечислите элементы интерфейса диалогового окна windows приложения
  2. Окна в Windows: что это такое, их виды и как сними работать
  3. Что это такое
  4. Основные виды
  5. Программные (приложений)
  6. Документы
  7. Запросы
  8. Контекстное меню
  9. Всплывающие
  10. Активные
  11. Работа с окнами Windows
  12. Элементы управления
  13. Дополнительные элементы
  14. Элементы управления в диалоговых окнах
  15. Горячие клавиши
  16. Мнение автора
  17. Диалоговые элементы управления
  18. Выбор правильного элемента управления
  19. Примеры
  20. Общие рекомендации
  21. Как создать диалоговое окно
  22. Предоставление безопасного действия
  23. Три кнопки в диалоговом окне
  24. CloseButton
  25. PrimaryButton и SecondaryButton
  26. DefaultButton
  27. Диалоговые окна подтверждения («ОК» и «Отмена»)
  28. ContentDialog в объектах AppWindow или XAML Island

Перечислите элементы интерфейса диалогового окна windows приложения

В настоящее время все операционные системы для персональных компьютеров обеспечивают взаимодействие с пользователем с помощью графического интерфейса.

Это позволяет даже начинающему пользователю компьютера уверенно работать в среде операционной системы (проводить операции с файлами, запускать программы и так далее).

Графический интерфейс позволяет осуществлять взаимодействие человека с компьютером в форме диалога с использованием окон, меню и элементов управления (диалоговых панелей, кнопок и так далее).

Работа с мышью. Для работы с графическим интерфейсом используется мышь или другое координатное устройство ввода, при этом пользователь должен уметь производить:

Рабочий стол. Основную часть экрана занимает Рабочий стол, на котором располагаются значки и ярлыки (значки с маленькими стрелочками в нижнем левом углу). Значки и ярлыки обеспечивают (с помощью двойного щелчка) быстрый доступ к дискам, папкам, документам, приложениям и устройствам.

Значки появляются на Рабочем столе после установки Windows. В левой части экрана обычно располагаются значки Мой компьютер, Сетевое окружение, Корзина и Мои документы.

Для быстрого доступа к дискам, принтеру, часто используемым документам целесообразно создать на рабочем столе ярлыки. Ярлык отличается от значка тем, что обозначает объект, фактически расположенный не на Рабочем столе, а в некоторой другой папке. Стрелочка означает, что мы имеем не сам объект, а ссылку на него. Ярлыки создаются перетаскиванием значков объектов на Рабочий стол.

1. Создать на Рабочем столе ярлыки всех дисков, принтера и сканера.

Создать ярлыки часто используемых приложений и документов.

1

Внешний вид графического интерфейса можно настраивать.

2. Щелкнуть правой кнопкой мыши на Рабочем столе. В контекстном меню выбрать пункт Персанолизация.

На диалоговой панели можно установить стиль оформления, выбрать заставку и др.

1

Панель задач. В нижней части экрана располагается Панель задач, на которой находятся кнопка Пуск, кнопки выполняемых задач и открытых папок, индикаторы и часы.

Кнопка Пуск позволяет вызывать Главное меню, которое обеспечивает доступ практически ко всем ресурсам системы и содержит команды запуска приложений, настройки системы, поиска файлов и документов, доступа к справочной системе и др.

Windows является многозадачной операционной системой, то есть параллельно могут выполняться несколько приложений. Каждое запущенное приложение обозначается кнопкой на Панели задач, при этом переход от работы в одном приложении к работе в другом может производиться с помощью щелчка по кнопке. Работающее (активное) приложение изображается на панели задач в виде нажатой кнопки.

В крайней правой части Панели задач находятся Часы. Левее часов располагаются индикаторы состояния системы. Например, индикатор Ru обозначает, что в текущий момент используется русская раскладка клавиатуры.

2

Основными элементами окна приложения являются:

Окна документов. Окна документов предназначены для работы с документами и «живут» внутри окон приложений. Можно раскрывать, сворачивать, перемещать или изменять размеры этих окон, однако они всегда остаются в пределах окна своего приложения. Окно документа имеет те же кнопки управления, что и окно приложения.

Окно документа всегда содержит зону заголовка (содержащую имя документа) и часто полосы прокрутки (появляющиеся, когда документ не помещается полностью в окне) и линейки. Открытое окно документа может находиться в активном либо в пассивном состоянии. Если окно находится в пассивном состоянии (зона заголовка не выделена цветом), то, щелкнув по любой его части мышью, можно перевести его в активное состояние.

3

Меню. Меню является одним из основных элементов графического интерфейса и представляет собой перечень команд (как правило, тематически сгруппированных), из которых необходимо сделать выбор (поместив на пункт меню указатель мыши и произведя щелчок). Выбор пункта меню приводит к выполнению определенной команды. Если за командой меню следует многоточие, то ее выбор приведет к появлению диалоговой панели, которая позволяет пользователю получить или ввести дополнительную информацию.

Диалоговые панели. Диалоговые панели могут включать в себя разнообразные элементы. Рассмотрим возможности диалоговых панелей на примере уточнения параметров поиска файлов.

Вкладки. Диалоговые панели могут включать в себя несколько «страниц», которые называются вкладками.

5. После ввода команды [Найти-Файлы и папки. ] появится диалоговая панель Найти: Все файлы. Эта панель содержит три вкладки: Имя и местоположение, Дата, Дополнительно. Выбор вкладки осуществляется левым щелчком.

Командные кнопки. Нажатие на кнопку (щелчок) обеспечивает выполнение того или иного действия, а надпись на кнопке поясняет ее назначение. Так, щелчок по кнопке с надписью Найти позволяет начать процесс поиска.

Текстовые поля. Текстовое поле называется иногда полем редактирования и позволяет ввести какую-либо текстовую информацию.

6. Например, если пользователь хочет найти файлы, содержащие слово «информатика», то его необходимо ввести в текстовом поле Поиск: Компьютер

Для этого следует осуществить левый щелчок в поле и ввести текст.

4

Списки. Список представляет собой набор предлагаемых на выбор значений. Раскрывающийся список выглядит как текстовое поле, снабженное кнопкой с направленной вниз стрелочкой. Раскрытие списка осуществляется с помощью левого щелчка по кнопке.

7. Раскрывающийся список Где искать: диалоговой панели Найти: Все файлы позволяет указать диск или папку (например, папку Мои документы), в которой будет осуществлен поиск.

Переключатели. Переключатели служат для выбора одного из взаимоисключающих вариантов, варианты выбора представлены в форме маленьких белых кружков. Выбранный вариант обозначается кружком с точкой внутри. Выбор варианта производится с помощью левого щелчка.

8. На вкладке Имя и местоположение диалоговой панели Найти: Все файлы, установив флажок Включая вложенные папки, можно обеспечить необходимую глубину поиска файлов.

Ползунки. Ползунок позволяет плавно изменять значение какого-либо параметра. Например, с помощью ползунков можно менять уровень громкости воспроизведения и записи звука, баланс левого и правого канала и т. п.

9. После левого щелчка на индикаторе громкости, который находится на Панели задач, появится диалоговая панель Регулятор громкости с ползункам громкости.

5

Контекстные меню. Объектно-ориентированный подход, используемый в операционной системе Windows, позволяет рассматривать диски, папки и файлы как объекты. Все эти объекты имеют определенные свойства, и над ними могут проводиться определенные операции.

Например, документы (документом называется любой файл, обрабатываемый с помощью приложений) имеют определенный объем и их можно копировать, перемещать и переименовывать; окна имеют размер, который можно изменять и так далее.

Хотя каждый из этих объектов имеет свои конкретные свойства и над ним возможны определенные операции, технология работы с объектами и интерфейс универсальны. Это позволяет пользователю достичь единообразия при работе с разными объектами.

Ознакомиться со свойствами объекта, а также выполнить над ним разрешенные операции можно с помощью контекстного меню. Для вызова контекстного меню необходимо осуществить правый щелчок на значке объекта.

Источник

Окна в Windows: что это такое, их виды и как сними работать

Всем привет! Продолжаем с вами изучать компьютерную грамотность. И если вы читали мои предыдущие статьи, то тогда вы уже много знаете и умеете.

Думаю, что сейчас нет такого человека кто не сталкивался бы с таким понятием как – окно Windows. Но, а если вы являетесь таковым, то уж вам точно следует прочитать эту статью до конца.

А для тех, кто уже имеет представление об этом тоже будет неплохо ознакомиться с этим материалом.

Почему? Спросите вы.

Да потому что вся работа за компьютером где установлена операционная система виндовс связана с управлением этими самыми окнами. И вы просто можете не знать всех тонкостей и нюансов работы с ними.

А в этой самой статье мы как раз и рассмотрим их.

Что это такое

Как мы уже знаем из одной из предыдущих статей – Windows в переводе означает «окна».

Они являются отличительной частью этой ОС. С их помощью пользователям предоставили более удобную работу с приложениями, программами, файлами и папками.

rabota za kompyuterom s prilozheniyami

И как наверно вы уже заметили, чтобы вы не открыли это, отображается в прямоугольной области. Вот эта область и называется окно.

Основные виды

В зависимости от тех задач, которые предстоит выполнить пользователю окна можно подразделить на следующие виды;

Программные (приложений)

Используют для открытия программ и приложений, установленных на ваш компьютер. И представляют они рабочую область в которой присутствуют разные элементы управления приложением или программой.

okno programmy fotoshop

okno programmy

Более подробно о компьютерных программах и приложениях можете почитать здесь.

Документы

Открываются они только в окне своего приложения и отображаются в них документы, созданные в программах для Windows.

После открытия становится доступна рабочая область в которой создается или редактируется различная информация с помощью устройств ввода таких как клавиатура и компьютерная мышь.

Ярким примером является документ Word.

dokument word

Запросы

Они появляются поверх всех остальных во время работы за ПК. В них отображаются запросы на подтверждение тех или иных действий или содержит запрос на определенную информацию.

Для них существует два действия предоставить ответ на запрос или подтвердить действие, или просто закрыть.

Еще их называют диалоговые, а они в свою очередь могут быть:

Модальные – это окна после появления которых блокируется приложение, и чтобы продолжить работу здесь следует завершить все действия.

modalnoe okno

По предложенным действиям их можно подразделить на три типа:

Немодальные – после появления приложение продолжает работать. Его можно свернуть или закрыть и продолжить работу в приложении.

Контекстное меню

Этот вид окон скрыт от глаз пользователей и вывести их можно нажатием правой кнопкой мыши. Они могут содержать дополнительные команды для программ и приложений.

kontekstnoe menyu

Всплывающие

В основном они используются системой для информирования или с требованием совершить то или иное действие.

vsplyvayushchie okna windows

А также они часто появляются при работе в веб – браузерах при посещении различных сайтов. Но их появление можно легко запретить в настройках браузера.

Давайте я расскажу коротко об этих настройках на примере Яндекс.Браузера

Переходим в настройки

nastrojki yandeks brauzera

Ищем «сайты» и жмем на «расширенные настройки сайтов»

nastrojki sajtov yandeks brauzera 1

Ставим галочку «разрешены» или «запрещены»

rasshirennye nastrojki sajtov v yandeks brauzere

Но эти вопросы мы будем рассматривать в рубрике «Освоение интернета» когда будем с вами изучать веб-браузеры. Так что подписывайтесь на обновления блога чтобы не пропустить.

О том, как это сделать можете почитать здесь.

Активные

Активным окном называют то которое расположено поверх остальных и в котором мы на данный момент работаем. Также можно встретить такое название как «рабочее окно».

При работе с несколькими окнами переключаться между ними можно с помощью мыши или горячих клавиш клавиатуры.

С видами разобрались. Думаю, что все понятно. Если нет не стесняйтесь задавайте вопросы в комментариях.

Теперь давайте переходить непосредственно к работе.

Работа с окнами Windows

Любое окно включает в себя элементы управления. Они могут отличаться в зависимости от того какой тип окна открыт. Но основные всё-таки присутствуют во всех видах.

Давайте разберем максимальное количество элементов на примере папки «мой компьютер». Так как с папками приходится работать очень часто.

Элементы управления

ehlementy upravleniya okna windows

И так как мы видим на скриншоте показаны где располагаются основные элементы и их названия.

1 Системный значок

Этот значок находится верхнем левом углу и при нажатии на него открывается меню управления.

menyu upravleniya

С помощью которого можно выполнить в зависимости от его расположения на мониторе следующие действия;

2 Заголовок

Выводится вверху и отображает название открытого объекта. В нашем случае «Этот компьютер». Если окно является активным, то он подсвечивается более ярким цветом.

При двукратном нажатии мыши на заголовок, оно раскроется до размеров вашего экрана.

3 Панель быстрого доступа

С помощью отображаемых иконок можно к примеру, посмотреть свойства открытого окна или создать папку в рабочей области.

Также можно настроить отображение элементов.

Для этого жмем на стрелочку, расположенную рядом со значками и ставим галочки напротив тех значков, которые должны отображаться.

panel bystrogo dostupa

А также здесь можно выбрать место расположения этой панели.

4 Кнопки управления

С помощью этих кнопок можно свернуть, развернуть или закрыть окно.

5 Строка меню и панель инструментов

Расположена она под заголовком и содержит пункты при нажатии на которые мы получаем доступ к определенным командам в панели инструментов.

Команды различны для разных видов окон все зависит от того какую задачу они выполняют.

6 Панель задач (инструментов)

В панели в нашем случае предоставляется быстрый доступ к папкам и файлам наиболее просматриваемым.

Если это окно приложений, то там могут быть доступны к выполнению определенные задачи.

okno prilozheniya

8 Адресная строка

С помощью этой строки возможен быстрый переход к другим папкам и разделам нажав на стрелку рядом с названием открытого раздела

Или же можно просто ввести соответствующий адрес папки.

Но как показывает практика эти варианты не очень удобны. Проще воспользоваться «Панелью задач».

9 Рабочая область

Это самая большая область, в которой располагаются объекты находящиеся внутри папки.

10 Кнопки отображения элементов

С помощью этих кнопок возможно настроить отображение объектов в виде таблицы или больших эскизов.

11 Строка состояния

Строка состояния выполняет информационную роль.
Сколько находится объектов в папке и сколько из них выбрано

12 Полоса прокрутки

Появляется если объекты не умещаются в рабочей области. И чтобы посмотреть невидные глазу требуется прокрутить вниз или бок. Наведя курсор на полосу и зажав левую кнопку компьютерной мыши.

13 Угол и границы

Наведя курсор мыши на угол или границу и нажав левую кнопку мыши можно увеличить или уменьшить размеры окна двигая компьютерную мышь по столу.

Дополнительные элементы

Еще хотелось бы отметить два элемента управления находящихся на панели задач рабочего стола

Если вы незнакомы с рабочем столом и панелью задач в операционной системе виндовс то рекомендую прочитать статью про «Рабочий стол Windows»

Свернуть все окна

Эта кнопка находится в правом углу панели задач

panel zadach

Организация отображения окон

Для организации открытых окон следует навести курсор мыши на свободную область панели задач и нажать правой кнопкой в появившемся меню выбираем нужную нам настройку.

organizaciya okon cherez panel zadach

Элементы управления в диалоговых окнах

Наличие этих элементов (не обязательно всех сразу) выделяют их от всех других.

Вкладки – как правило располагаются под заголовком

vkladki

Флажки – используются для отображения различных параметров со значением «да» или «нет». Если галочка стоит в квадратике, то «да» если ее там нет, то тогда «нет»

flazhki

Радиокнопки – предоставляют возможность выбора одного варианта из нескольких.

radioknopki

Текстовые поля – используются для ввода определенной информации которая должна будет использоваться в программе.

tekstovoe pole

Цифровые счётчики – используются для ввода числовых значение путем нажатия стрелок вверх или вниз.

cifrovye schyotchiki

Списки – предоставляется для выбора определенного значения.

prostoj spisok

Раскрывающиеся списки – нажав стрелку открывается список и после выбора нужного значения оно будет отображается.

raskryvayushchijsya spisok

Ползунковые регуляторы – с помощью них выбираем значение из определенного диапазона.

polzunkovye regulyatory

Командные кнопки – нужны для выбора определенного действия. Например, сохранить, применить, отмена и.т.д.

komandnye knopki

Горячие клавиши

Для более быстрой работы за компьютером часть операций по управлению можно выполнять с помощью клавиш клавиатуры.

Давайте рассмотрим какие именно сочетания клавиш применяются при работе с окнами.

1 Alt+Tab – переключение между открытыми окнами

После нажатия клавиш появится панель где будут располагаться все открытые в данный момент окна.

panel s oknami windows

И не отпуская клавишу Alt нажимаем кнопку Tab переключаясь между ними. После выбора нужного отпускаем обе кнопки.

2 Свернуть и развернуть все окна отобразив или скрыв рабочий стол

3 Свернуть и развернуть активное окно

4 Закрыть активное окно

5 Последовательно перебирать иконки панели задач

6 Запустить приложение иконка которого закреплена на панели задач и соответствует цифрам от 0 до 9

7 Сворачивает все окна кроме активного (вторым нажатие развернуть)

8 Сместить окно к левому краю вашего экрана

Win + стрелка влево

9 Сместить окно к правому краю вашего экрана

Win + стрелка в право

10 Развернуть на весь экран. Если оно было смещено к краю экрана, то оно займет позицию в верхней части экрана заняв четверть экрана

Win + стрелка вверх

11 Сворачивает активное окно. Если оно было смещено к краю экрана, то оно займет позицию в нижней части экрана заняв четверть экрана

12 Если у вас несколько мониторов, то сочетание этих клавиш поможет перенести окно на другой монитор

Win + Shift + стрелка влево или вправо

Мнение автора

В моей практике мне очень часто приходилось пользоваться всеми элементами управления окнами так как я раньше проходил службу в УИС и работать за компьютером приходилось очень часто.

И скажу я вам одно что неважно в каких именно целях вы решили использовать компьютер для ведения бизнеса или просто в домашних условиях.

На этом все ждите новых статей на блоге пишите комментарии делитесь информацией в социальных сетях. Всем пока.

Источник

Диалоговые элементы управления

Диалоговые элементы управления — это модальные наложения пользовательского интерфейса, которые предоставляют контекстную информацию о приложении. Они блокируют взаимодействие с окном приложения, пока пользователь явно их не закроет. Они часто требуют от пользователя совершения каких-либо действий.

dialog rs2 delete file

Получение библиотеки пользовательского интерфейса Windows

Библиотека пользовательского интерфейса Windows 2.2 или более поздних версий содержит новый шаблон для этого элемента управления, который использует закругленные углы. Дополнительные сведения см. в разделе о радиусе угла. WinUI — это пакет NuGet, содержащий новые элементы управления и функции пользовательского интерфейса для приложений для Windows. Дополнительные сведения, включая инструкции по установке, см. в описании библиотеки пользовательского интерфейса Windows.

Выбор правильного элемента управления

Диалоговые окна используются для уведомления пользователей о важной информации или запроса подтверждения либо дополнительных сведений перед совершением действия.

Рекомендации по целесообразности использования диалоговых окон и всплывающих элементов (аналогичных элементов управления) приведены в разделе Диалоговые окна и всплывающие элементы.

Примеры

Если у вас установлено приложение XAML Controls Gallery, щелкните здесь, чтобы открыть его и увидеть ContentDialog или Flyout в действии.

Общие рекомендации

Как создать диалоговое окно

Для создания диалогового окна используется класс ContentDialog. Диалоговое окно можно создать в виде кода или разметки. Хотя обычно проще определять элементы пользовательского интерфейса в XAML, при создании простого диалогового окна удобнее использовать обычный код. В этом примере показано создание диалогового окна для уведомления пользователя об отсутствии подключения к сети WiFi, а для отображения диалогового окна используется метод ShowAsync.

Когда пользователь нажимает кнопку диалогового кона, метод ShowAsync возвращает ContentDialogResult, чтобы сообщить вам, какую кнопку нажал пользователь.

В этом примере в диалоговом окне задается вопрос и используется возвращенный ContentDialogResult, чтобы определить ответ пользователя.

Предоставление безопасного действия

Так как диалоговые окна блокируют взаимодействие с пользователем, а кнопки — это основной механизм, позволяющий пользователям закрыть диалоговое окно, убедитесь, что диалоговое окно содержит по крайней мере одну кнопку безопасного и обратимого действия, например «Закрыть» или «Понятно». Все диалоговые окна должны содержать по крайней мере одну кнопку безопасного действия, позволяющую закрыть диалоговое окно. Это гарантирует, что пользователь сможет спокойно закрыть диалоговое окно без выполнения какого-либо действия.

Когда диалоговые окна используются для отображения блокирующего вопроса, диалоговое окно должно содержать кнопки действий, связанные с этим вопросом. Кнопка «безопасного» и обратимого действия может сопровождаться одной или двумя кнопками действия «выполнить». Предлагая пользователю несколько вариантов на выбор, убедитесь, что кнопки точно соответствуют действиям «выполнить» и безопасным действиям «не выполнять», связанным с предложенным вопросом.

Диалоговые окна с тремя кнопками используются, когда вы предлагаете пользователю два действия «выполнить» и одно действие «не выполнять». Диалоговые окна с тремя кнопками следует использовать не слишком часто. В них должны четко различаться дополнительное действие и безопасное действие (закрытие).

Три кнопки в диалоговом окне

ContentDialog поддерживает три типа кнопки, которые можно использовать для создания диалоговых окон.

Использование встроенных кнопок позволяет их правильно разместить в окне, а также гарантирует, что они будут правильно реагировать на события клавиатуры, что область команд останется видимой, даже когда отображена экранная клавиатура, и что диалоговое окно будет выглядеть согласованно с другими диалоговыми окнами.

CloseButton

Каждое диалоговое окно должно содержать кнопку безопасного и обратимого действия, которая позволяет пользователям спокойно закрыть диалоговое окно.

Используйте API ContentDialog.CloseButton для создания этой кнопки. Это позволит обеспечить правильное взаимодействие с пользователем для всех методов ввода, включая мышь, клавиатуру, сенсорный ввод и игровой контроллер. Это взаимодействие будет происходить в следующих случаях:

Когда пользователь нажимает кнопку диалогового кона, метод ShowAsync возвращает ContentDialogResult, чтобы сообщить вам, какую кнопку нажал пользователь. При нажатии кнопки CloseButton возвращается ContentDialogResult.None.

PrimaryButton и SecondaryButton

Помимо CloseButton, вы можете также предоставить пользователю одну или две кнопки действия, связанные с основной инструкцией. Используйте PrimaryButton для первого действия «выполнить» и SecondaryButton — для второго действия «выполнить». В диалоговых окнах с тремя кнопками PrimaryButton обычно представляет подтверждающее действие «выполнить», а SecondaryButton обычно представляет нейтральное или вспомогательное действие «выполнить». Например, приложение может предложить пользователю подписаться на службу. PrimaryButton в качестве подтверждающего действия «выполнить» будет содержать текст «Подписаться», а SecondaryButton в качестве нейтрального действия «выполнить» будет содержать текст «Попробовать». CloseButton позволит пользователю отменить операцию без выполнения какого-либо действия.

Когда пользователь нажимает кнопку PrimaryButton, метод ShowAsync возвращает ContentDialogResult.Primary. Когда пользователь нажимает кнопку SecondaryButton, метод ShowAsync возвращает ContentDialogResult.Secondary.

DefaultButton

При необходимости можно выделить одну из трех кнопок в качестве кнопки по умолчанию. Если задать кнопку по умолчанию, то происходит следующее.

Используйте свойство ContentDialog.DefaultButton, чтобы указать кнопку по умолчанию. По умолчанию кнопка по умолчанию не задана.

Диалоговые окна подтверждения («ОК» и «Отмена»)

Диалоговое окно подтверждения позволяет пользователям подтвердить действие. Они могут подтвердить выполнение действия или отменить его. Типичное диалоговое окно подтверждения обычно содержит две кнопки: подтверждения («ОК») и отмены.

В целом кнопка подтверждения должна быть слева (основная кнопка), а кнопка отмены (вспомогательная) — справа.

На некоторых платформах кнопка подтверждения размещена справа, а не слева. Так почему рекомендуется поместить ее слева? Если предполагается, что большинство пользователей — правши и держат телефон в правой руке, им будет удобнее нажимать кнопку подтверждения слева, так как более вероятно, что она будет расположена в пределах досягаемости больших пальцев пользователя. Чтобы нажать кнопки в правой части экрана, пользователю необходимо переместить большой палец в менее удобное положение.

ContentDialog в объектах AppWindow или XAML Island

ПРМЕЧАНИЕ. Этот раздел относится только к приложениям, предназначенным для Windows 10 версии 1903 или более поздней версии. Объекты AppWindow и XAML Island недоступны в более ранних версиях. Дополнительные сведения об управлении версиями см. в статье Приложения с адаптивным к версии кодом.

По умолчанию диалоговые окна содержимого модально связаны с корневым объектом ApplicationView. При использовании ContentDialog в объекте AppWindow или XAML Island необходимо вручную задать XamlRoot для диалогового окна, указав корень узла XAML.

Для этого задайте для свойства XamlRoot элемента ContentDialog то же значение XamlRoot, что и у элемента, уже заданного в AppWindow или XAML Island, как показано ниже.

В потоке может существовать только один элемент ContentDialog одновременно. Попытка открыть два элемента ContentDialogs породит исключение, даже если они пытаются открыться в отдельных объектах AppWindow.

Источник

окна в ОкнаДанная статья про окна в Windows даст вам общее понятие о стандартных и диалоговых окнах их разновидность, предназначение  и отличие при работе.

Окно это область экрана, отображающая результаты работы программы, а также информацию для пользователя.

То окно, с которым мы работаем, называется активным. Открыто может быть несколько окон, но активным будет только одно и оно размещается всегда поверх остальных!

Окна бывают обычные «Стандартные» а также «Диалоговые», которые в свою очередь делятся еще на «модальные» и «немодальные».

Стандартные окна

Вызов стандартного окна на рабочем столе осуществляем двойным кликом левой кнопки мыши по любому ярлыку, а если из «панели задач» то единичным кликом.

Абсолютно любые программы, папки документы вообще все открывается в окнах на рабочем столе.

Рассмотрим элементы окна в Windows на примере папки «Мой компьютер».

Здесь мы видим стандартное окно Windows,  которое состоит из нескольких панелей и элементов.

В самом верху правого угла окна находиться область, отвечающая за свертывание, разворачивание и закрытие окна.

  • Кнопка прямоугольник: сворачивает окно в панель задач.
  • Кнопка квадрат в квадрате: при нажатии уменьшает размер окна до заданного по умолчанию или самим пользователем ранее.

Следом появляется одиночный квадратик дающий возможность на действия по увеличению или уменьшению окна.

Для этого наводим курсор мыши на контур любой стороны окна после чего появиться двойная стрелочка и в этот момент зажимаем левую кнопку мыши и не отпуская тянем мышь в какую либо сторону тем самым уменьшая или увеличивая окно.

Также при наведении курсора в верхнюю область окна и зажав левую кнопку мыши можно перетаскивать окно по экрану монитора (не зависимо развернуто оно или нет).

Теперь при следующем открытии этого элемента  размер окна будет тот что был установлен сейчас.

  • Крестик: отвечает за закрытие окна.

Панель заголовка или по-другому навигация:

определят местонахождение т.е показывает название папки или файла открытого в данный момент, плюс элементы навигации.

  • Кнопки вперед назад: позволяют вернуться к предыдущему действию или наоборот. Если же подвести курсор к одной из кнопок то всплывет подсказка с названием папки, которая отобразиться при нажатии.

  • Последние страницы: отвечает за историю последних страниц, по которым были перемещения в последний момент, позволяя выбрать из выпадающего списка нужную не прибегая к помощи кнопок «вперед» и «назад».

  • Предыдущие расположения: служит для просмотра сохраненных адресов в адресной строке
  • Строка поиск: осуществляет поиск файлов и папок в папке нахождения в данный момент или по всему компьютеру и даже в интернете.

Если перейти в папку «Библиотеки» то в строке поиска можно набрать название любого известного вам находящегося там файла из предложенных четырех категорий Видео, Изображение, Документы и Музыка.

Например: я нашел нужное мне видео, введя всего одну букву!

Если поиск не удался, то есть возможность повтора для этого предлагаются еще три варианта.

  1. Компьютер – нахождение нужной информации во всех существующих файлах на «ПК».
  2. Другое – поиск в задаваемой пользователем области т.е можно выбрать конкретный файл нажимаем на данную вкладку ставим галочку там где предполагается искомый объект и жмем «ОК».
  3. Интернет – розыск объектов с помощью браузера в сети Интернет.

Область меню

  • Файл: в моем случае имеет две активных вкладки «добавить новый элемент в сетевое окружение» и «закрыть» что означает закрытие окна.
  • Правка: здесь показано, что можно выделить элементы, копировать, вставить и отменить действия.
  • Вид: здесь довольно большой список настроек не очень нужных для простых пользователей, поэтому заострять внимание не буду.

Хотя есть люди, которые любят все проверить, как будет выглядеть. Каждый может поэкспериментировать, сложного тут ничего нет.

  • Сервис: три первых пункта нам не нужны, рассмотрим последний «параметры папок» далее выбираем «вид» и ставим галочку напротив «использовать флажки для выбора элементов» закрепляем «ОК».

Теперь при выделении, какого либо объекта на нем будет отображаться галочка, что создает определенные удобства особенно при  непоследовательном выделении нескольких файлов и папок для дальнейшего перемещения, как в корзину, так и для копирования.

  • Справка: советую прочитать для разнообразия

Панель инструментов

  • Упорядочить: также имеет ряд активных вкладок, которые мы сейчас рассмотрим.
  • Представление: эта вкладка содержит выпадающий список меню с четырьмя элементами.
  1. Строка меню: если убрать галочку панель перестанет отображаться.
  2. Область сведений: отображает в низу окна информацию выбранного объекта размер дата создания, дата изменения итд.
  3. Область предпросмотра: дает возможность просмотреть файл в правой части окна, не открывая, а просто выделив его кликом левой кнопки мыши.
  4. Область переходов: это левая часть окна для просмотра и быстрого перехода по папкам.

Советую во всех пунктах поставить галочки.

  • Свойства: позволяет производить с диском много разных действий от перемены названия до дефрагментации и полной очистки
  • Создать библиотеку: помимо четырех базовых, таких как видео, изображение музыка  и документы можно придумать еще, что то, свое.

Но лучше системный диск «С» не загромождать, а создать новый образ диска, разделив  «С» на еще один том, куда и устанавливать все свои файлы.

  • Кнопка изменить представление: меняет при нажатии представление значков список, таблица, плитка, содержимое.

  • Дополнительно: при нажатии выполняет те же функции, что и кнопка «изменить представление» но еще и меняет размеры значков.

  • Кнопка показа или  скрытия области предварительного просмотра.

  • Полоса прокрутки: появляется автоматом при нехватке места в окне, как в нижней части, так и с правой части окна.

Диалоговое окно Windows:

это окно, выдающее какую либо информацию для пользователя и требующие от него ответных действий. Грубо говоря, между пользователем и компьютером происходит диалог отсюда и название.

Диалоговые окна применяются для настройки системы Windows, а также для всевозможных программ  компьютера. Открываются они в основном автоматически поверх остальных окон и имеют не большой фиксированный размер.

В отличие от «стандартных» окон их нельзя развернуть или свернуть. Диалоговые окна в Windows распределяются еще на два вида «модальные» и «немодальные» и имеют существенные отличия друг от друга.

Модальное окно

Модальные окна используются для отображения важной информации, например: сообщение об ошибке или каком-то сбое в системе и т.п.

окна в Окна

Пока открыто «модальное» окно пользователь не сможет иметь возможность продолжить работу с основным рабочим окном приложения так как полностью блокируется работа с корневым приложением до того времени пока оно не будет закрыто.

Немодальное окно

На примере немодальное диалоговое окно, которое в данном случае еще можно назвать сложным по причине имеющихся в нем множества настроек.

Выводимая на нем информация не влияет на работу с компьютером в отличии от модального окна, поэтому окно может быть открыто при этом не мешая  работать с активным приложением.

Настоящее описание про окна в Windows не является полным по причинам ненадобности некоторых пунктов для обычных пользователей на кого вообще-то и рассчитан этот блог.
На этом данную статью я завершаю до новых встреч на страницах этого блога!

Валерий Семенов, moikomputer.ru

Главная

Понравилась статья? Поделить с друзьями:
  • Название ос microsoft windows 10 education
  • Название простейшего графического редактора который входит в состав ms windows
  • Название программы для презентаций на компьютере windows 7
  • Название программного обеспечения microsoft windows 7
  • Название папки которую нельзя создать в windows