Элементы окна приложения: О Windows — Win32 apps

Элементы окна приложения: О Windows — Win32 apps

Содержание

О Windows — Win32 apps


  • Статья

  • Чтение занимает 12 мин

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

Обзор включает следующие разделы.

  • Окно рабочего стола
  • Windows приложения
    • Клиентская область
    • Неклиентная область
  • Элементы управления и диалоговые окна
  • Атрибуты окна
    • Имя класса
    • Имя окна
    • Стиль окна
    • Расширенный стиль окна
    • Положение
    • Размер
    • Дескриптор окна родительского или владельца
    • Дескриптор меню или идентификатор Child-Window
    • Дескриптор экземпляра приложения
    • Данные создания
    • Дескриптор окна
  • Создание окна
    • Создание главного окна
    • Сообщения создания окна
    • Многопоточные приложения

Окно рабочего стола

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

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

Функция GetDesktopWindow возвращает дескриптор в окно рабочего стола.

Приложение конфигурации системы, например элемент панель управления, изменяет фоновое изображение рабочего стола с помощью функции SystemParametersInfo с параметром wAction, установленным на SPI_SETDESKWALLPAPER, и параметр lpvParam, указывающий имя файла растрового изображения. Затем SystemParametersInfo загружает растровое изображение из указанного файла, использует растровое изображение для рисования фона экрана и вводит новое имя файла в реестре.

Windows приложения

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

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

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

Клиентская область

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

Неклиентная область

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

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

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

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

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

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

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

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

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

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

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

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

Атрибуты окна

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

  • Имя класса
  • Имя окна
  • Стиль окна
  • Расширенный стиль окна
  • Положение
  • Размер
  • Дескриптор окна родительского или владельца
  • Дескриптор меню или идентификатор Child-Window
  • Дескриптор экземпляра приложения
  • Данные создания
  • Дескриптор окна

Эти атрибуты окна описаны в следующих разделах.

Имя класса

Каждое окно принадлежит классу окна. Приложение должно зарегистрировать класс окна перед созданием любых окон этого класса. Класс window определяет большинство аспектов внешнего вида и поведения окна. Главным компонентом класса окна является процедура окна, функция, которая получает и обрабатывает все входные данные и запросы, отправляемые в окно. Система предоставляет входные данные и запросы в виде сообщений. Дополнительные сведения см. в разделе «Классы окон», «Процедуры окон» и «Сообщения» и «Очереди сообщений».

Имя окна

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

Чтобы изменить имя окна после создания окна, используйте функцию SetWindowText . Эта функция использует функции GetWindowTextLength и GetWindowText для получения текущей строки имени окна из окна.

Стиль окна

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

Система и, в некоторой степени, процедура окна для класса интерпретирует стили окон.

Некоторые стили окон применяются ко всем окнам, но большинство применяются к окнам определенных классов окон. Общие стили окон представлены константами, начинающимися с префикса WS_; Их можно объединить с оператором OR для формирования различных типов окон, включая основные окна, диалоговые окна и дочерние окна. Стили окна, относящиеся к классу, определяют внешний вид и поведение окон, принадлежащих предопределенным классам элементов управления. Например, класс SCROLLBAR задает элемент управления полосой прокрутки, но SBS_HORZ и стили SBS_VERT определяют, создается ли элемент управления горизонтальной или вертикальной полосой прокрутки.

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

  • Стили окна
  • Стили кнопок
  • Стили полей со списком
  • Изменение стилей элементов управления
  • Стили списка
  • Стили элементов управления «Форматированный редактирование»
  • Стили элементов управления полосой прокрутки
  • Стили статических элементов управления

Расширенный стиль окна

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

Дополнительные сведения см. в разделе CreateWindowEx.

Положение

Позиция окна определяется как координаты верхнего левого угла. Эти координаты, иногда называемые координатами окна, всегда относятся к левому верхнему углу экрана или для дочернего окна в левом верхнем углу клиентской области родительского окна. Например, окно верхнего уровня с координатами (10 10 10) размещается 10 пикселей справа от левого верхнего угла экрана и 10 пикселей вниз от него. Дочернее окно с координатами (10 10 10) размещается 10 пикселей справа от левого верхнего угла клиентской области родительского окна и 10 пикселей вниз от него.

Функция WindowFromPoint извлекает дескриптор в окно, занимающее определенную точку на экране. Аналогичным образом функции ChildWindowFromPoint и ChildWindowFromPointEx извлекают дескриптор дочернего окна, занимающего определенную точку в клиентской области родительского окна. Хотя ChildWindowFromPointEx может игнорировать невидимые, отключенные и прозрачные дочерние окна, ChildWindowFromPoint не может.

Размер

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

Приложению может потребоваться создать окно с клиентской областью определенного размера. Функции AdjustWindowRect и AdjustWindowRectEx вычисляют требуемый размер окна на основе требуемого размера клиентской области. Приложение может передать результирующие значения размера в функцию CreateWindowEx .

Приложение может размер окна таким образом, чтобы оно было чрезвычайно большим; однако оно не должно иметь размер окна, чтобы оно было больше экрана. Перед установкой размера окна приложение должно проверить ширину и высоту экрана с помощью GetSystemMetrics с флагами SM_CXSCREEN и SM_CYSCREEN .

Дескриптор окна родительского или владельца

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

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

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

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

Каждое окно, за исключением дочернего окна, может иметь меню. Приложение может включать меню, предоставляя дескриптор меню при регистрации класса окна или при создании окна.

Дескриптор экземпляра приложения

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

Данные создания

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

Дескриптор окна

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

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

Функция IsWindow определяет, определяет ли дескриптор окна допустимое существующее окно. Существуют специальные константы, которые могут заменить дескриптор окна в определенных функциях. Например, приложение может использовать HWND_BROADCAST в функциях SendMessage и SendMessageTimeout или HWND_DESKTOP в функции MapWindowPoints .

Создание окна

Чтобы создать окна приложений, используйте функцию CreateWindow или CreateWindowEx . Необходимо указать сведения, необходимые для определения атрибутов окна. CreateWindowEx имеет параметр dwExStyle, у которого CreateWindow нет; в противном случае функции идентичны. На самом деле CreateWindow просто вызывает CreateWindowEx с параметром dwExStyle , равным нулю. По этой причине оставшаяся часть этого обзора относится только к CreateWindowEx.

В этом разделе рассматриваются следующие вопросы.

  • Создание главного окна
  • Сообщения о создании окна
  • Многопоточные приложения

Примечание

Существуют дополнительные функции для создания специальных окон, таких как диалоговые окна и окна сообщений. Дополнительные сведения см. в разделе DialogBox, CreateDialog и MessageBox.

 

Создание главного окна

Каждое приложение на основе Windows должно иметь WinMain в качестве функции точки входа. WinMain выполняет ряд задач, включая регистрацию класса окна для главного окна и создание главного окна. WinMain регистрирует класс главного окна, вызывая функцию RegisterClass , и создает главное окно, вызывая функцию CreateWindowEx .

Функция WinMain также может ограничить приложение одним экземпляром. Создайте именованный мьютекс с помощью функции CreateMutex . Если GetLastError возвращает ERROR_ALREADY_EXISTS, существует еще один экземпляр приложения (он создал мьютекс) и вы должны выйти из WinMain.

Система не отображает главное окно автоматически после его создания; Вместо этого приложение должно использовать функцию ShowWindow для отображения главного окна. После создания главного окна функция WinMain приложения вызывает ShowWindow, передавая ему два параметра: дескриптор в главное окно и флаг, указывающий, следует ли свернуть или развернуть главное окно при первом отображении. Как правило, флаг можно задать для любой из констант, начиная с префикса SW_. Однако при вызове ShowWindow для отображения главного окна приложения флаг должен быть установлен на SW_SHOWDEFAULT. Этот флаг указывает системе отображать окно в соответствии с инструкциями программы, которая запустила приложение.

Если класс окна зарегистрирован в версии RegisterClass в Юникоде, окно получает только сообщения Юникода. Чтобы определить, использует ли окно набор символов Юникода или нет, вызовите IsWindowUnicode.

сообщения Window-Creation

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

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

Многопоточные приложения

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

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

Функция GetWindowThreadProcessId возвращает идентификатор потока, создавшего определенное окно.

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

 

 

Итоговый тест по информатике и ИКТ. 5 класс

Похожие презентации:

Пиксельная картинка

Информационная безопасность. Методы защиты информации

Электронная цифровая подпись (ЭЦП)

Этапы доказательной медицины в работе с Pico. Первый этап

История развития компьютерной техники

От печатной книги до интернет-книги

Краткая инструкция по CIS – 10 шагов

Информационные технологии в медицине

Информационные войны

Моя будущая профессия. Программист

1. Итоговый тест по ИНФОРМАТИКИ и ИКТ

5 класс

2.

1. Отметьте информационные процессы (действия с информацией).

1) Работа на компьютере с
клавиатурным тренажером;
2) Установка телефона;
3) Прослушивание
музыкальной кассеты;
4) Чтение книги;
5) Видеокассета;
6) Заучивание правила;
7) Толковый словарь;
8) Выполнение домашнего
задания по истории;
9) Разговор по телефону;
10) Посадка дерева;
11) Кассета любимой
музыкальной группы;
12) Письмо приятелю;
13) Выполнение контрольной
работы;
14) Разгадывание кроссворда;
15) Просмотр телепередачи;
16) Учебник математики.

3. 2. Отметьте устройства, предназначенные для вывода информации.

1) Принтер;
2) Процессор;
3) Монитор;
4) Сканер;
5) Графопостроитель;
6) Джойстик;
7) Клавиатура;
8) Мышь;
9) Микрофон;
10) Акустические колонки;
11) Дискета.

4. 3.Отметьте устройства, предназначены для ввода информации в компьютер.

1) Принтер;
2) Процессор;
3) Монитор;
4) Сканер;
5) Графопостроитель;
6) Джойстик;
7) Клавиатура;
8) Мышь;
9) Микрофон;
10) Акустические колонки;
11) Дискета.

5. 4. Отметьте элементы окна приложения Paint.

1) Название приложения;
2) Строка меню;
3) Кнопка закрыть;
4) Кнопка свернуть;
5) Панель инструментов;
6) Палитра;
7) Панель Стандартная;
8) Панель Форматирование;
9) Рабочая область;
10) Полосы прокрутки.

6. 5. Отметьте элементы окна приложения WordPad.

1) Название приложения;
2) Строка меню;
3) Кнопка закрыть;
4) Кнопка свернуть;
5) Панель инструментов;
6) Палитра;
7) Панель Стандартная;
8) Панель Форматирование;
9) Рабочая область;
10) Полосы прокрутки.

7. 6. Отметьте операции при форматировании документов.

1)
2)
3)
4)
5)
6)
7)
8)
Вставка;
Удаление;
Замена;
Изменение шрифта;
Изменение начертания;
Изменение цвета;
Поиск и замена;
Выравнивание.

8. 7. Отметьте операции при редактировании документов.

1)
2)
3)
4)
5)
6)
7)
8)
Вставка;
Удаление;
Замена;
Изменение шрифта;
Изменение начертания;
Изменение цвета;
Поиск и замена;
Выравнивание.

9. 8. При форматировании текстового документа происходит …

1) обработка, связанная с изменением формы
информации, но не изменяющая её
содержания;
2) обработка, связанная с получением нового
содержания, новой информации;
3) обработка информации не происходит.

10. 9. При разработке плана действий происходит …

1) обработка, связанная с изменением формы
информации, но не изменяющая её
содержания;
2) обработка, связанная с получением нового
содержания, новой информации;
3) обработка информации не происходит.

11. 10. При упорядочивании информации в хронологической последовательности происходит …

1) обработка, связанная с получением нового
содержания, новой информации;
2) обработка, связанная с изменением формы
информации, но не изменяющая её
содержания;
3) обработка информации не происходит.

12. 12. При вычислениях по известным формулам происходит …

1) обработка, связанная с изменением формы
информации, но не изменяющая её
содержания;
2) обработка, связанная с получением нового
содержания, новой информации;
3) обработка информации не происходит.

13. Проверка

14. 1. Отметьте информационные процессы (действия с информацией).

1) Работа на компьютере с
клавиатурным тренажером;
2) Установка телефона;
3) Прослушивание
музыкальной кассеты;
4) Чтение книги;
5) Видеокассета;
6) Заучивание правила;
7) Толковый словарь;
8) Выполнение домашнего
задания по истории;
9) Разговор по телефону;
10) Посадка дерева;
11) Кассета любимой
музыкальной группы;
12) Письмо приятелю;
13) Выполнение контрольной
работы;
14) Разгадывание кроссворда;
15) Просмотр телепередачи;
16) Учебник математики.

15. 2. Отметьте устройства, предназначенные для вывода информации.

1)
2)
3)
4)
5)
6)
7)
8)
9)
10)
11)
Принтер;
Процессор;
Монитор;
Сканер;
Графопостроитель;
Джойстик;
Клавиатура;
Мышь;
Микрофон;
Акустические колонки;
Дискета.

16. 3.Отметьте устройства, предназначены для ввода информации в компьютер.

1) Принтер;
2) Процессор;
3) Монитор;
4) Сканер;
5) Графопостроитель;
6) Джойстик;
7) Клавиатура;
8) Мышь;
9) Микрофон;
10) Акустические колонки;
11) Дискета.

17. 4. Отметьте элементы окна приложения Paint.

1) Название приложения;
2) Строка меню;
3) Кнопка закрыть;
4) Кнопка свернуть;
5) Панель инструментов;
6) Палитра;
7) Панель Стандартная;
8) Панель Форматирование;
9) Рабочая область;
10) Полосы прокрутки.

18. 5. Отметьте элементы окна приложения WordPad.

1) Название приложения;
2) Строка меню;
3) Кнопка закрыть;
4) Кнопка свернуть;
5) Панель инструментов;
6) Палитра;
7) Панель Стандартная;
8) Панель Форматирование;
9) Рабочая область;
10) Полосы прокрутки.

19. 6. Отметьте операции при форматировании документов.

1)
2)
3)
4)
5)
6)
7)
8)
Вставка;
Удаление;
Замена;
Изменение шрифта;
Изменение начертания;
Изменение цвета;
Поиск и замена;
Выравнивание.

20. 7. Отметьте операции при редактировании документов.

1)
2)
3)
4)
5)
6)
7)
8)
Вставка;
Удаление;
Замена;
Изменение шрифта;
Изменение начертания;
Изменение цвета;
Поиск и замена;
Выравнивание.

21. 8. При форматировании текстового документа происходит …

1) обработка, связанная с изменением формы
информации, но не изменяющая её
содержания;
2) обработка, связанная с получением нового
содержания, новой информации;
3) обработка информации не происходит.

22. 9. При разработке плана действий происходит …

1) обработка, связанная с изменением формы
информации, но не изменяющая её
содержания;
2) обработка, связанная с получением нового
содержания, новой информации;
3) обработка информации не происходит.

23. 10. При упорядочивании информации в хронологической последовательности происходит …

1) обработка, связанная с получением нового
содержания, новой информации;
2) обработка, связанная с изменением формы
информации, но не изменяющая её
содержания;
3) обработка информации не происходит.

24. 11. При вычислениях по известным формулам происходит …

1) обработка, связанная с изменением формы
информации, но не изменяющая её
содержания;
2) обработка, связанная с получением нового
содержания, новой информации;
3) обработка информации не происходит.

25. Ответы

Вопрос
Ответы
1
3, 4, 6, 8, 9, 13, 14, 15
2
1, 3, 5, 10
3
4, 6, 7, 8, 9,
4
1, 2, 3, 4, 5, 6, 9, 10
5
1, 2, 3, 4, 7, 8, 9, 10
6
4, 5, 6, 8
7
1, 2, 3, 7
8
1
9
2
10
2
11
2

26. Критерии оценки

0 – 2 ошибки – «5»
2-5 ошибок – «4»
6 – 9 ошибок – «3»
Больше 10 ошибок – «2»

English    
Русский
Правила

О Windows — приложения Win32

  • Статья
  • 15 минут на чтение

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

Обзор включает следующие темы.

  • Окно рабочего стола
  • Окна приложений
    • Зона клиента
    • Неклиентская область
  • Элементы управления и диалоговые окна
  • Атрибуты окна
    • Имя класса
    • Имя окна
    • Стиль окна
    • Расширенный стиль окна
    • Позиция
    • Размер
    • Ручка окна родителя или владельца
    • Дескриптор меню или идентификатор дочернего окна
    • Дескриптор экземпляра приложения
    • Данные о создании
    • Оконная ручка
  • Создание окна
    • Создание главного окна
    • Сообщения о создании окна
    • Многопоточные приложения

Окно рабочего стола

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

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

Функция GetDesktopWindow возвращает дескриптор окна рабочего стола.

Приложение настройки системы, такое как элемент панели управления, изменяет обои рабочего стола с помощью SystemParametersInfo с параметром wAction , установленным на SPI_SETDESKWALLPAPER , и параметром lpvParam , указывающим имя файла растрового изображения. SystemParametersInfo Затем загружает растровое изображение из указанного файла, использует растровое изображение для рисования фона экрана и вводит новое имя файла в реестр.

Приложение Windows

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

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

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

Зона клиента

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

Неклиентская область

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

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

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

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

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

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

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

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

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

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

Элементы управления всегда используются в сочетании с другим окном — обычно это диалоговое окно. А 9Диалоговое окно 0071 — это окно, содержащее один или несколько элементов управления. Приложение использует диалоговое окно, чтобы запросить у пользователя ввод, необходимый для выполнения команды. Например, приложение, включающее команду для открытия файла, будет отображать диалоговое окно с элементами управления, в которых пользователь указывает путь и имя файла. Диалоговые окна обычно не используют тот же набор оконных компонентов, что и главное окно. Большинство из них имеют строку заголовка, меню окна, рамку (без изменения размера) и клиентскую область, но обычно у них нет строки меню, кнопок свертывания и развертывания или полос прокрутки. Дополнительные сведения см. в разделе Диалоговые окна.

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

Атрибуты окна

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

  • Имя класса
  • Имя окна
  • Стиль окна
  • Расширенный стиль окна
  • Позиция
  • Размер
  • Ручка окна родителя или владельца
  • Дескриптор меню или идентификатор дочернего окна
  • Дескриптор экземпляра приложения
  • Данные о создании
  • Оконная ручка

Эти атрибуты окна описаны в следующих разделах.

Имя класса

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

Имя окна

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

Чтобы изменить имя окна после создания окна, используйте функцию SetWindowText . Эта функция использует функции GetWindowTextLength и GetWindowText для получения текущей строки имени окна из окна.

Стиль окна

Каждое окно имеет один или несколько стилей окна. Стиль окна — это именованная константа, определяющая аспект внешнего вида и поведения окна, не заданный классом окна. Приложение обычно устанавливает стили окон при создании окон. Он также может установить стили после создания окна с помощью Функция SetWindowLong .

Система и, в некоторой степени, оконная процедура для класса интерпретируют стили окна.

Некоторые стили окон применяются ко всем окнам, но большинство применяется к окнам определенных классов окон. Общие стили окон представлены константами, начинающимися с префикса WS_; их можно комбинировать с оператором ИЛИ для формирования различных типов окон, включая главные окна, диалоговые окна и дочерние окна. Стили окон, специфичные для класса, определяют внешний вид и поведение окон, принадлежащих предопределенным классам элементов управления. Например, 9Класс 0079 SCROLLBAR задает элемент управления полосы прокрутки, но стили SBS_HORZ и SBS_VERT определяют, создается ли элемент управления горизонтальной или вертикальной полосы прокрутки.

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

  • Стили окон
  • Стили кнопок
  • Стили поля со списком
  • Редактировать стили управления
  • Стили списка
  • Богатые стили управления редактированием
  • Стили управления полосой прокрутки
  • Статические стили управления

Расширенный стиль окна

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

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

Позиция

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

Функция WindowFromPoint извлекает дескриптор окна, занимающего определенную точку на экране. Точно так же функции ChildWindowFromPoint и ChildWindowFromPointEx извлекают дескриптор дочернего окна, занимающего определенную точку в клиентской области родительского окна. Хотя ChildWindowFromPointEx может игнорировать невидимые, отключенные и прозрачные дочерние окна, ChildWindowFromPoint не может.

Размер

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

Приложению может потребоваться создать окно с клиентской областью определенного размера. Функции AdjustWindowRect и AdjustWindowRectEx вычисляют требуемый размер окна на основе желаемого размера клиентской области. Приложение может передать результирующие значения размера функции CreateWindowEx .

Приложение может изменить размер окна до очень большого; однако он не должен изменять размер окна так, чтобы оно было больше экрана. Перед установкой размера окна приложение должно проверить ширину и высоту экрана с помощью GetSystemMetrics с флагами SM_CXSCREEN и SM_CYSCREEN .

Дескриптор окна-родителя или владельца

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

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

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

Дочернее окно может иметь идентификатор child-window , уникальное определяемое приложением значение, связанное с дочерним окном. Идентификаторы дочерних окон особенно полезны в приложениях, создающих несколько дочерних окон. При создании дочернего окна приложение указывает идентификатор дочернего окна. После создания окна приложение может изменить идентификатор окна с помощью функции SetWindowLong или получить идентификатор с помощью функции Функция GetWindowLong .

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

Дескриптор экземпляра приложения

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

Данные создания

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

Дескриптор окна

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

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

Функция IsWindow определяет, идентифицирует ли дескриптор окна действительное существующее окно. Существуют специальные константы, которые могут заменить дескриптор окна в определенных функциях. Например, приложение может использовать HWND_BROADCAST в функциях SendMessage и SendMessageTimeout или HWND_DESKTOP в функции MapWindowPoints .

Создание окна

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

Этот раздел содержит следующие темы:

  • Создание главного окна
  • Сообщения о создании окна
  • Многопоточные приложения

Примечание

Существуют дополнительные функции для создания специальных окон, таких как диалоговые окна и окна сообщений. Дополнительные сведения см. в разделах DialogBox , CreateDialog и MessageBox .

 

Создание главного окна

Каждое приложение на основе Windows должно иметь WinMain в качестве функции точки входа. WinMain выполняет ряд задач, включая регистрацию класса окна для главного окна и создание главного окна. WinMain регистрирует класс главного окна, вызывая функцию RegisterClass , и создает главное окно, вызывая функцию CreateWindowEx .

Ваша функция WinMain также может ограничить ваше приложение одним экземпляром. Создайте именованный мьютекс, используя Функция CreateMutex . Если GetLastError возвращает ERROR_ALREADY_EXISTS , существует другой экземпляр вашего приложения (он создал мьютекс), и вы должны выйти WinMain .

Система не отображает автоматически главное окно после его создания; вместо этого приложение должно использовать функцию ShowWindow для отображения главного окна. После создания главного окна функция приложения WinMain вызывает ShowWindow 9.0080 , передав ему два параметра: дескриптор главного окна и флаг, указывающий, должно ли главное окно быть свернуто или развернуто при первом отображении. Обычно флаг может быть установлен на любую константу, начинающуюся с префикса SW_. Однако, когда ShowWindow вызывается для отображения главного окна приложения, флаг должен быть установлен на SW_SHOWDEFAULT . Этот флаг указывает системе отображать окно в соответствии с указаниями программы, запустившей приложение.

Если класс окна был зарегистрирован с версией Unicode RegisterClass , окно получает только сообщения Unicode. Чтобы определить, использует ли окно набор символов Unicode или нет, вызовите IsWindowUnicode .

Сообщения о создании окна

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

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

Многопоточные приложения

Приложение для Windows может иметь несколько потоков выполнения, и каждый поток может создавать окна. Поток, создающий окно, должен содержать код своей оконной процедуры.

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

Функция GetWindowThreadProcessId возвращает идентификатор потока, создавшего конкретное окно.

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

 

 

Как найти элементы пользовательского интерфейса с помощью локаторов и сочетаний клавиш в приложениях Windows

Доступные инструменты для проверки приложений Windows

Один из способов автоматизировать приложения Windows — нацелить компоненты пользовательского интерфейса на их идентификаторы. Microsoft рекомендует Accessibility Insights для просмотра свойств автоматизации пользовательского интерфейса. Также можно использовать устаревшие инструменты, такие как Inspect.exe.

Проверка приложений Windows с помощью Accessibility Insights

После установки и запуска Accessibility Insights для Windows проверка приложений Windows становится простой. Используя калькулятор Windows в качестве примера, при наведении курсора на приложение отображаются свойства компонентов пользовательского интерфейса.

По умолчанию Accessibility Insights отображает только несколько свойств, включая доступное Имя компонента пользовательского интерфейса на панели ПОДРОБНОСТИ . В данном случае название кнопки Five . Использование локализованных имен для автоматизации — не самый надежный вариант, поскольку метки меняются в зависимости от языковых настроек Windows.

Чтобы увидеть больше свойств, щелкните значок настроек и выберите Включить все свойства со значениями :

Это будет включать свойство AutomationId . В этом случае значение этого свойства равно num5Button :

.

Вы можете использовать значение AutomationId в вашем скрипте робота. Здесь мы используем ключевое слово Click из библиотеки RPA.Windows , добавляя к идентификатору автоматизации префикс id: :

.

  *** Настройки ***
Библиотека RPA. Windows
*** Ключевые слова ***
Откройте калькулятор
    Windows Запустите calc.exe
    Имя окна управления: Калькулятор
*** Ключевые слова ***
Нажмите кнопку Five, используя значение свойства AutomationId
    Идентификатор клика: num5Button
*** Задания ***
Автоматизируйте калькулятор
    Откройте калькулятор
    Нажмите кнопку Five, используя значение свойства AutomationId
  

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

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

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

Robocorp также поддерживает решения для автоматизации браузера, такие как Selenium и Playwright.

  *** Настройки ***
Библиотека RPA.Windows
*** Задания ***
Автоматизируйте настольный веб-браузер
Откройте браузер
Открыть новое приватное окно
Адресная строка фокуса
Введите URL-адрес Robot Framework и нажмите клавишу ввода.
Открыть новую вкладку
Введите URL-адрес документов Robocorp и нажмите клавишу ввода.
Поиск на странице Поле ввода поиска
Открыть ссылку на документацию библиотеки
Приблизить
Журнал Готово.
*** Ключевые слова ***
Откройте браузер
Поиск в Windows Firefox
Имя окна управления: "Mozilla Firefox"
Открыть новое приватное окно
Отправить ключи keys={Ctrl}({Shift}p)
Адресная строка фокуса
Отправить ключи keys={Ctrl}L
Введите URL-адрес документов Robocorp и нажмите клавишу ввода.
Отправить ключи keys=https://robocorp.com/docs{Enter}
Открыть новую вкладку
Отправить ключи keys={Ctrl}T
Введите URL-адрес Robot Framework и нажмите клавишу ввода.
Отправить ключи keys=https://robotframework.org{Enter}
Приблизить
Отправить ключи keys={Ctrl}{Добавить}{Ctrl}{Добавить}{Ctrl}{Добавить}
Поиск на странице Поле ввода поиска
Подимя окна управления: "Документация RPA"
Отправить ключи locator=имя:Тип поиска:Глубина редактирования:16 ключей=rpa.windows{Ввод}
Открыть ссылку на документацию библиотеки
Сон 2 с
Подимя окна управления: "Документация RPA"
Имя клика: "RPA.

Добавить комментарий

Ваш адрес email не будет опубликован. Обязательные поля помечены *

*

*

*