Системные метрики
Метрики системных компонент Windows можно определить при помощи функции GetSystemMetrics, имеющей следующий прототип:
int WINAPI GetSystemMetrics(int nIndex);
Единственный параметр функции (nIndex) выбирает параметр, значение которого необходимо определить. Значение параметра возвращается функцией GetSystemMetrics.
Для определения компоненты Windows в файле windows.h имеются символические константы с префиксом SM_:
| Имя константы | Описание |
| SM_CXBORDER | Ширина рамки для окна, размеры которого нельзя изменять |
| SM_CXCURSOR | Ширина курсора |
| SM_CXDLGFRAME | Ширина рамки окна, имеющего стиль WS_DLGFRAME |
| SM_CXDOUBLECLK | Ширина прямоугольника, внутри которого должны быть сделаны два щелчка мышью, для того чтобы они могли распознаваться как один двойной щелчок (double click). Эта константа определена только для Windows версии 3.1 |
| SM_CXFRAME | Ширина рамки для окна, размеры которого можно изменять |
| SM_CXFULLSCREEN | Ширина внутренней поверхности окна, увеличенного до предела (maximised) |
| SM_CXHSCROLL | Ширина битового образа стрелки горизонтальной полосы просмотра |
| SM_CXHTHUMB | Ширина ползунка горизонтальной полосы просмотра |
| SM_CXICON | Ширина пиктограммы |
| SM_CXICONSPACING | Ширина прямоугольника, используемого для расположения пиктограммы с заголовком. Эта константа определена только для Windows версии 3.1 |
| SM_CXMIN | Минимальная ширина окна |
| SM_CXMINTRACK | Минимальная ширина окна, которая может быть установлена при помощи мыши (Minimum tracking width of a window) |
| SM_CXSCREEN | Ширина экрана |
| SM_CXSIZE | Ширина полосы битового образа (bitmap) заголовка окна (title bar) |
| SM_CXVSCROLL | Ширина битового образа стрелки вертикальной полосы просмотра |
| SM_CYBORDER | Высота рамки для окна, размеры которого нельзя изменять |
| SM_CYCAPTION | Высота заголовка окна |
| SM_CYCURSOR | Высота курсора |
| SM_CYDLGFRAME | Высота рамки окна, имеющего стиль WS_DLGFRAME |
| SM_CYDOUBLECLK | Высота прямоугольника, внутри которого должны быть сделаны два щелчка мышью, для того чтобы они могли распознаваться как один двойной щелчок (double click). Эта константа определена только для Windows версии 3.1 |
| SM_CYFRAME | Высота рамки для окна, размеры которого можно изменять |
| SM_CYFULLSCREEN | Высота внутренней поверхности окна, увеличенного до предела (maximised) |
| SM_CYHSCROLL | Высота битового образа стрелки горизонтальной полосы просмотра |
| SM_CYICON | Высота пиктограммы |
| SM_CYICONSPACING | Высота прямоугольника, используемого для расположения пиктограммы с заголовком. Эта константа определена только для Windows версии 3.1 |
| SM_CYKANJIWINDOW | Высота окна Kanji |
| SM_CYMENU | Высота одной строки в полосе меню |
| SM_CYMIN | Минимальная высота окна |
| SM_CYMINTRACK | Минимальная высота окна, которая может быть установлена при помощи мыши (Minimum tracking width of a window) |
| SM_CYSCREEN | Высота экрана |
| SM_CYSIZE | Высота полосы битового образа заголовка окна |
| SM_CYVSCROLL | Высота битового образа стрелки вертикальной полосы просмотра |
| SM_CYVTHUMB | Высота ползунка горизонтальной полосы просмотра |
| SM_DBCSENABLED | Флаг использования символов, состоящих из двух байт (используется в тех языках, где для представления всех символов не хватает 8-разрядной сетки). Эта константа определена только для Windows версии 3.1 |
| SM_DEBUG | Флаг отладочной версии Windows. Он не равен нулю, если работает отладочная версия Windows (поставляется вместе с Microsoft SDK или Microsoft Visual C++) |
| SM_MENUDROPALIGNMENT | Флаг типа выравнивания временного меню (pop-up menu). Если флаг равен нулю, левая сторона меню выравнена по левой стороне соответствующего элемента строки меню. В противном случае левая сторона меню выравнена по правой стороне соответствующего элемента строки меню. Эта константа определена только для Windows версии 3.1 |
| SM_MOUSEPRESENT | Флаг не равен нулю, если компьютер оборудован мышью |
| SM_PENWINDOWS | Идентификатор библиотеки динамической загрузки DLL Pen Windows или 0, если Pen Windows не используется. Эта константа определена только для Windows версии 3.1 |
| SM_RESERVED1 | Зарезервировано |
| SM_RESERVED2 | Зарезервировано |
| SM_RESERVED3 | Зарезервировано |
| SM_RESERVED4 | Зарезервировано |
| SM_SWAPBUTTON | Если флаг не равен нулю, действия левой и правой клавиши мыши поменялись местами, то есть вместо левой клавиши используется правая и наоборот, вместо правой - левая |