CS_HREDRAW | CS_VREDRAW Что это делает?

structure.style = CS_HREDRAW | CS_VREDRAW;

Это строка кода, которую я нашел для регистрации класса окна и установки параметра изменения размера, но как он работает, каково будет значение структуры style быть?

Символ трубы в середине | побитовый OR так будет установлено style на комбинацию битов из CS_HREDRAW | CS_VREDRAW так что это будет означать для Windows, как он узнает, если оба установлены, один или нет?

Может быть, я надумал …

1

Решение

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

Если вы посмотрите на значения этих флагов, вы увидите, что:

CS_HREDRAW = 0x0001 = 0000 0000 0000 0001
CS_VREDRAW = 0x0002 = 0000 0000 0000 0010

Результат ORing этих флагов:

COMBINED = 0x0003 = 0000 0000 0000 0011

Это известно как Битовое поле

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

3

Другие решения


По вопросам рекламы ammmcru@yandex.ru
Adblock
detector