Что такое код getsyscolor

Что такое код getsyscolor

Возвращает системный цвет элементов окна

#include
_WinAPI_GetSysColor ( $iIndex )

$iIndex Элемент, цвет которого необходимо возвратить. Может быть одним из следующих значений:
$COLOR_3DDKSHADOW — Тёмная тень трехмерных элементов.
$COLOR_3DFACE — Цвет поверхности трехмерных элементов и фон диалогового окна.
$COLOR_3DHIGHLIGHT — Цвет выделенных трехмерных элементов (для краев, стоящих перед источником света.)
$COLOR_3DHILIGHT — Цвет выделенных трехмерных элементов (для краев, стоящих перед источником света.)
$COLOR_3DLIGHT — Светлый цвет трехмерных элементов (для краев, стоящих перед источником света.)
$COLOR_3DSHADOW — Цвет тени трехмерных элементов (для краев противоположных источнику света).
$COLOR_ACTIVEBORDER — Границы активного окна.
$COLOR_ACTIVECAPTION — Заголовок активного окна.
Цвет левой стороны градиента, если включен эффект градиента.
$COLOR_APPWORKSPACE — Рабочая область приложения (MDI).
$COLOR_BACKGROUND — Фон рабочего стола.
$COLOR_BTNFACE — Цвет поверхности трехмерных элементов и фон диалогового окна.
$COLOR_BTNHIGHLIGHT — Цвет выделенных трехмерных элементов (для краев, стоящих перед источником света.)
$COLOR_BTNHILIGHT Цвет выделенных трехмерных элементов (для краев, стоящих перед источником света.)
$COLOR_BTNSHADOW — Цвет тени трехмерных элементов (для краев противоположных источнику света).
$COLOR_BTNTEXT — Цвет текста на кнопке.
$COLOR_CAPTIONTEXT — Цвет текста в заголовке, size box, и стрелки в элементе прокрутки.
$COLOR_DESKTOP — Фон рабочего стола.
$COLOR_GRADIENTACTIVECAPTION — Цвет правой стороны градиента в заголовке активного окна, если включен эффект градиента.
$COLOR_ACTIVECAPTION Заголовок активного окна.
Используйте SPI_GETGRADIENTCAPTIONS с функцией SystemParametersInfo, чтобы определить, включен ли эффект градиента.
$COLOR_GRADIENTINACTIVECAPTION — Цвет правой стороны градиента в заголовке не активного окна, если включен эффект градиента.
$COLOR_INACTIVECAPTION определяет цвет левого края.
$COLOR_GRAYTEXT — Серый текст (недоступный). Этот цвет имеет значение 0, если текущий драйвер дисплея не поддерживает solid серый цвет.
$COLOR_HIGHLIGHT — Выделенный пункт(а) элементы (например ListView).
$COLOR_HIGHLIGHTTEXT — Текст выделенного пункта(ов) элемента (например ListView).
$COLOR_HOTLIGHT — Цвет ссылки или пункта, на который наведён курсор мыши.
$COLOR_INACTIVEBORDER — Цвет границы неактивного окна.
$COLOR_INACTIVECAPTION — Цвет заголовка неактивного окна.
Цвет левой стороны градиента, если включен эффект градиента.
$COLOR_INACTIVECAPTIONTEXT — Цвет текста в заголовке неактивного окна.
$COLOR_INFOBK — Цвет фона всплывающей подсказки.
$COLOR_INFOTEXT — Цвет текста всплывающей подсказки.
$COLOR_MENU — Цвет фона меню.
$COLOR_MENUHILIGHT — Цвет выделенного элемента меню, когда меню плоское.
Выделенный пункт меню очерчен $COLOR_HIGHLIGHT .
Это значение не поддерживается в Windows 2000.
$COLOR_MENUBAR — Цвет фона меню, когда меню плоское.
Однако, $COLOR_MENU продолжает определять цвет фона всплывающего меню.
Это значение не поддерживается в Windows 2000.
$COLOR_MENUTEXT — Цвет текста в меню.
$COLOR_SCROLLBAR — Серая область элемента прокрутки.
$COLOR_WINDOW — Цвет фона окна.
$COLOR_WINDOWFRAME — Window frame.
$COLOR_WINDOWTEXT — Цвет текста в окне.

Возвращает красный, зеленый, синий (RGB) значения цвета данного элемента

Для выше указанных констант необходим WindowsConstants.au3.

Если параметр $iIndex выходит за пределы диапазона, то возвращается 0. Поскольку 0 является допустимым значением RGB, то вы не можете использовать GetSysColor для определения системного цвета, поддерживаемого текущей платформой. Вместо этого используйте функцию GetSysColorBrush, которая возвращает NULL, если цвет не поддерживается.

Искать GetSysColor в библиотеке MSDN

Func _Example ()
Local $aSysColor [ 39 ] = [ _
‘COLOR_3DDKSHADOW’ , _
‘COLOR_3DFACE’ , _
‘COLOR_3DHIGHLIGHT’ , _
‘COLOR_3DHILIGHT’ , _
‘COLOR_3DLIGHT’ , _
‘COLOR_3DSHADOW’ , _
‘COLOR_ACTIVEBORDER’ , _
‘COLOR_ACTIVECAPTION’ , _
‘COLOR_APPWORKSPACE’ , _
‘COLOR_BACKGROUND’ , _
‘COLOR_BTNFACE’ , _
‘COLOR_BTNHIGHLIGHT’ , _
‘COLOR_BTNHILIGHT’ , _
‘COLOR_BTNSHADOW’ , _
‘COLOR_BTNTEXT’ , _
‘COLOR_CAPTIONTEXT’ , _
‘COLOR_DESKTOP’ , _
‘COLOR_GRADIENTACTIVECAPTION’ , _
‘COLOR_ACTIVECAPTION’ , _
‘COLOR_GRADIENTINACTIVECAPTION’ , _
‘COLOR_INACTIVECAPTION’ , _
‘COLOR_GRAYTEXT’ , _
‘COLOR_HIGHLIGHT’ , _
‘COLOR_HIGHLIGHTTEXT’ , _
‘COLOR_HOTLIGHT’ , _
‘COLOR_INACTIVEBORDER’ , _
‘COLOR_INACTIVECAPTION’ , _
‘COLOR_INACTIVECAPTIONTEXT’ , _
‘COLOR_INFOBK’ , _
‘COLOR_INFOTEXT’ , _
‘COLOR_MENU’ , _
‘COLOR_MENUHILIGHT’ , _
‘COLOR_MENUBAR’ , _
‘COLOR_MENU’ , _
‘COLOR_MENUTEXT’ , _
‘COLOR_SCROLLBAR’ , _
‘COLOR_WINDOW’ , _
‘COLOR_WINDOWFRAME’ , _
‘COLOR_WINDOWTEXT’ ]

PixelGetColor -Autohotkey

Получает цвет пикселя по указанным координатам X и Y.

Параметры

OutputVar Имя переменной, в которой хранится идентификатор цвета в шестнадцатеричном сине-зелено-красном (BGR) формате. Например, фиолетовый цвет определяется как 0x800080, потому что он имеет интенсивность 80 для своих синих и красных компонентов, но интенсивность 00 для его зеленых компонентов.
X, Y Координаты X и Y пикселя, которые могут быть выражениями. Координаты относятся к активному окну, если CoordMode не использовался, чтобы изменить это.
Mode Этот параметр может содержать ноль или более следующих слов. Если присутствует более одного слова, отделяйте каждое от следующего пробелом (например, Alt RGB). — Alt [v1.0.43.10 +]: использует альтернативный метод для получения цвета, который следует использовать, когда обычный метод создает недопустимые или неточные цвета для определенного типа окна. Этот метод примерно на 10% медленнее, чем обычный метод. — Slow [v1.0.43.10 +]: использует более сложный метод для получения цвета, который может работать в определенных полноэкранных приложениях, когда другие методы не работают. Этот метод примерно в три раза медленнее, чем обычный метод. Примечание. Slow имеет приоритет над Alt, поэтому нет необходимости указывать Alt в этом случае. — RGB: получает цвет в формате RGB или BGR. Другими словами, красный и синий компоненты поменялись местами. Это полезно для получения цветов, совместимых с WinSet, Gui, Progress и SplashImage.
Илон Маск рекомендует:  Что такое код yaz_errno

Обработка ошибок

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

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

Известные ограничения:

— Окно, которое является частично прозрачным или имеет один из своих цветов, помеченных как невидимые (TransColor), обычно дает цвета для окна позади себя, а не его собственного.

— PixelGetColor может не давать точных результатов для определенных приложений. Если это произойдет, попробуйте указать слово Alt или Slow в последнем параметре.

c — Вопрос по функции GetSysColor

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

Задание звучит так:

Написать программу для получения сведений о системе, используя функции Win32 API: GetSystemInfo(), GetSysColor(), GetSystemMetrics(). Предусмотреть введение команд с клавиатуры.

Возникла проблема с выводом цветов (в программе — раздел «Системные цвета») с помощью функции GetSysColor(), так как программа должна выводить цифру соответствующую цвету указанного отображаемого элемента. Но при компиляции выводятся постоянно нули с использованием параметров COLOR_DESKTOP (= 1) , COLOR_WINDOWTEXT (= 8) , а COLOR_WINDOW (= 5) выводит один и тот же набор цифр 16777215 .

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

The function returns the red, green, blue (RGB) color value of the given element.

If the nIndex parameter is out of range, the return value is zero. Because zero is also a valid RGB value, you cannot use GetSysColor to determine whether a system color is supported by the current platform. Instead, use the GetSysColorBrush function, which returns NULL if the color is not supported.

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

Почему функция GetSysColor выдает одни и те же значения для разных цветов?

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

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

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

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

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

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

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

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

Функции управления памятью

Не нашли то, что искали? Воспользуйтесь поиском:

Лучшие изречения: Сдача сессии и защита диплома — страшная бессонница, которая потом кажется страшным сном. 8774 — | 7145 — или читать все.

188.64.174.135 © studopedia.ru Не является автором материалов, которые размещены. Но предоставляет возможность бесплатного использования. Есть нарушение авторского права? Напишите нам | Обратная связь.

Отключите adBlock!
и обновите страницу (F5)

очень нужно

GetSysColor Function

Declare Function GetSysColor Lib «user32.dll» ( ByVal nIndex As Long ) As Long

Platforms

  • Windows 95: Supported.
  • Windows 98: Supported.
  • Windows NT: Requires Windows NT 3.1 or later.
  • Windows 2000: Supported.
  • Windows CE: Requires Windows CE 1.0 or later.

Description & Usage

GetSysColor returns the RGB value of one of the system colors. The system colors are the ones Windows uses to draw the typical widgets in the graphical user interface. For example, this includes the colors of title bars, scroll bars, the desktop, window borders, etc.

Return Value

If successful, the function returns the RGB value of the requested system color. If an error occured, the function returns zero (use GetLastError to get the error code).

Visual Basic-Specific Issues


Parameters

nIndex One of the following flags specifying which system color to get: COLOR_3DDKSHADOW The dark shadow color for 3D objects. COLOR_3DFACE, COLOR_BTNFACE The face color for 3D objects. COLOR_3DHILIGHT, COLOR_3DHIGHLIGHT, COLOR_BTNHILIGHT, COLOR_BTNHIGHLIGHT The highlight (opposite of shadow) color for 3D objects. COLOR_3DLIGHT The light (opposite of shadow) color for 3D objects. COLOR_3DSHADOW, COLOR_BTNSHADOW The shadow color for 3D objects. COLOR_ACTIVEBORDER The active window border color. COLOR_ACTIVECAPTION The active window title bar color. Windows 98, 2000: The color of the left side of the active window title bar gradient, if the gradient effect is used. COLOR_APPWORKSPACE The background color of multiple document interface (MDI) windows. COLOR_BACKGROUND, COLOR_DESKTOP The desktop color. COLOR_BTNTEXT The text color for pushbuttons. COLOR_CAPTIONTEXT The color of window caption text, size boxes, and scroll bar arrow boxes. COLOR_GRADIENTACTIVECAPTION Windows 98, 2000: The color of the right side of the active window title bar gradient, if the gradient effect is used. COLOR_GRADIENTINACTIVECAPTION Windows 98, 2000: The color of the right side of an inactive window’s title bar gradient, if the gradient effect is used. COLOR_GRAYTEXT The color for disabled (grayed-out) text. COLOR_HIGHLIGHT The color used to highlight selected items. COLOR_HIGHLIGHTTEXT The color used for the text of highlighted items. COLOR_HOTLIGHT Windows 98, 2000: The color of a hot-tracked item, which is executed with a single click. COLOR_INACTIVEBORDER The color of an inactive window’s border. COLOR_INACTIVECAPTION The color of an inactive window’s caption. Windows 98, 2000: The color of the right side of an inactive window’s title bar gradient, if the gradient effect is used. COLOR_INACTIVECAPTIONTEXT The color of an inactive window’s caption text. COLOR_INFOBK The background color for tooltop controls. COLOR_INFOTEXT The text color for tooltip controls. COLOR_MENU The background color of menus. COLOR_MENUTEXT The color of menu text. COLOR_SCROLLBAR The color of a scroll bar’s gray area. COLOR_WINDOW The background color of a window. COLOR_WINDOWFRAME The color of a window frame. COLOR_WINDOWTEXT The color of text in a window.

Constant Definitions


Example

Reverse the gradient colors in windows’ title bars. In other words, the left-side gradient color is swapped with the right-side gradient color, for both active and inactive windows. Of course, this example won’t work properly on Windows 95 or Windows NT 3.1 through 4.0, but you can still see how these two functions are used by looking at the source code.

This example runs when the user clicks command button Command1. So, to use this example, you must first place a command button named Command1 on a form window.

C++ and VC++ Tips

How to get the system color of a display element

Sometime we may need to get the system defined RGB value of a display elements (user controls) like dialog , scrollbar , button , listbox etc. How do we get it?

Windows prov >GetSysColor to retrieve the current color of the specified display element.

DWORD GetSysColor(int nIndex);

int nIndex – The display element whose color is to be retrieved. It can be CTLCOLOR_DLG , CTLCOLOR_SCROLLBAR , CTLCOLOR_BTN , CTLCOLOR_LISTBOX etc.

The function returns the red, green, blue (RGB) color value of the given element.

SetSysColors API can be used to set the colors for specified display elements.

Кто-нибудь имеет документацию по SHGetSysColor?

Я пытаюсь найти ссылку на эту функцию, но ничего не нашел.

Все, что у меня есть, является неясным KB от Microsoft, ссылаясь на то, что программист сделал boo-boo при кодировании части Windows Mobile 6, где он должен назвать SHGetSysColor , но вместо этого он назвал GetSysColor , который дает совершенно другой цвет, для той же спецификации.

Из того, что я мог бы собрать GetSysColor , прочитать значение цвета в реестре с HKEY_LOCAL_MACHINE\Software\Microsoft\Color\SHColor или HKEY_LOCAL_MACHINE\Software\Microsoft\Color\DefSHColor и вернуть цвет в соответствии с индексом.

В этом реестре у меня есть следующее значение для стандартного Win Mobile 6.5

И я понял, что каждый четыре байта представляет другой цвет (RR, GG, BB, AA — AA, который я здесь принимаю, поскольку каждый цвет имеет байт AA как 00 , что означало бы, что это сплошной цвет).

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

Googling для SHGetSysColor in дает мне всего 7 совпадений, два из них — это KB от Microsoft (один на английском, другой на французском), один с русского сайта (который я не читаю), еще один два из них — это freepascal.org и один из Koders.com, описывающий файл commctl.def .

Я пошел в commctl.h , пытаясь понять, могу ли я найти ссылку на эту функцию и ничего не нашел.

Поиск в MSDN в Google, Bing или поиске по MSDN по умолчанию не дал мне результатов.

Итак, кто-нибудь знает, какие индексы мы здесь говорим?

Подключаем GetSysColor в user32.dll

У меня есть проблема перекинув функцию «GetSysColor» из «user32.dll», чтобы изменить

Мой класс окна крючок выглядит следующим образом:

Я написал пользовательский метод GetSysColor

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

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

Может быть кто-нибудь знает, если есть другой WinAPI вызов происходит для заголовка или если я пропустил что-то важное. Большое спасибо!

2) с другой стороны, есть и другие системные библиотеки, которые могут быть использованы ВВД, вы можете попытаться использовать отладчик точек останова, чтобы идентифицировать их

3) , как о титрах, он может быть окрашен DrawCaption , GradientFill или с функциями тематизации (XP или выше) нравится DrawThemeBackground .

Что такое код getsyscolor

We recommend upgrading to the latest Google Chrome or Firefox.

Join GitHub today

GitHub is home to over 40 million developers working together to host and review code, manage projects, and build software together.

Win32API / libraries / user32 / GetSysColor.md

Function name : GetSysColor

Retrieves the current color of the specified display element. Display elements are the parts of a window and the Windows display that appear on the system display screen

nIndex Specifies the display element whose color is to be retrieved

If the function succeeds, the return value is the red, green, blue (RGB) color value that specifies the color of the given element

Some constants are not availble for Win9 or otherwise for WinNT. The «reverse» function is SetSysColors. Note the difference: GetSysColor restores one color at a time; SetSysColors function allows to change several colors at once

Hooking GetSysColor в user32.dll

У меня есть проблема перекинув функцию «GetSysColor» из «user32.dll», чтобы изменить

Мой класс окна крючок выглядит следующим образом:

Я написал метод пользовательского GetSysColor

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

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

Возможно, кто-нибудь знает, есть ли другой вызов winapi для заголовка или если я пропустил что-то важное. Большое спасибо!

Создан 06 авг. 12 2012-08-06 17:58:03 CppChris

Это не то, как вы настраиваете подпись. Способ настройки заголовка — обработка сообщения WM_NCPAINT. – Raymond Chen 06 авг. 12 2012-08-06 20:58:54

№. Для моего приложения крючок — лучшее решение. OnNcPaint() с: a) изменением системных цветов или b) покраска вашей собственной надписи слишком медленная и громоздкая. – CppChris 06 авг. 12 2012-08-06 21:36:56

№ Раймонд прав. Существует много проблем с предлагаемым решением. Это действительно не должно быть быстрее, если вы правильно написали код, который запускается при получении сообщения WM_NCPAINT, но даже если это происходит быстрее, он не будет работать правильно. Во-первых, система сильно кэширует кисти для системных цветов; ему не нужно воссоздавать их каждый раз, когда они нужны, вызывая функцию GetSysColor. Что вы собираетесь делать с ними? – Cody Gray 06 авг. 12 2012-08-06 23:25:37

Система не вызывает GetSysColor для получения цветов. Он уже знает, что такое цвета. (Аниф визуальные стили включены, тогда заголовок даже не цвет). – Raymond Chen 07 авг. 12 2012-08-07 00:45:32

Спасибо за подсказку с помощью кистей системы. Я исследую это позже. – CppChris 07 авг. 12 2012-08-07 09:24:49

Илон Маск рекомендует:  Дружественный контент. Что это такое
Понравилась статья? Поделиться с друзьями:
Кодинг, CSS и SQL