Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
uchebnik.docx
Скачиваний:
2
Добавлен:
01.04.2025
Размер:
557.61 Кб
Скачать

1.2.4.2.4 Системные параметры

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

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

В качестве входных параметров функции SystemParametersInfo задаются 4 числа (таблица 19).

Таблица 19 - Параметры функции SystemParametersInfo

Название параметра

Тип в С

Тип в ассемблере

Назначение параметра

uiAction

UINT

DD

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

uiParam

UINT

DD

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

pvParam

PVOID

DD

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

fWinIni

UINT

DD

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

Системный параметр uiAction определяет, какой параметр ОС будет изменяться, перечень этих параметров изменяется от одной ОС к другой. Значения кодов этих параметров указаны в заголовочном файле WinUser.h (префикс системных параметров - SPI).

1.2.4.2.5 Внешний вид системных элементов

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

В качестве входного параметра функции GetSystemMetrics задается код параметра (целое беззнаковое число, размером 4 байта), значение которого определяется.

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

Например, для определения высоты одиночной строки меню, используется параметр SM_CYMENU (код параметра 15). Значит, перед вызовом функции GetSystemMetrics сначала надо в стек записать код параметра (число 15), и лишь затем вызвать функцию GetSystemMetrics. Число, появившееся в регистре EAX, соответствует числу строк пикселей, формирующих меню программы.

Используя функции GetSysColor и SetSysColors можно определить (GetSysColor) или установить (SetSysColors) цвет таких элементов окна как меню, полосы прокрутки, кнопки и т.п.

Для определения цвета какого-либо элемента окна необходимо перед вызовом функции GetSysColor передать в стек код этого элемента. В результате выполнения функции, в регистре EAX будут находиться 3 байта, определяющие R, G и B составляющие цвета элемента (старший байт EAX будет равен 0).

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

Соседние файлы в предмете [НЕСОРТИРОВАННОЕ]