structure.style = CS_HREDRAW | CS_VREDRAW;
Это строка кода, которую я нашел для регистрации класса окна и установки параметра изменения размера, но как он работает, каково будет значение структуры style
быть?
Символ трубы в середине |
побитовый OR
так будет установлено style
на комбинацию битов из CS_HREDRAW | CS_VREDRAW
так что это будет означать для Windows, как он узнает, если оба установлены, один или нет?
Может быть, я надумал …
Причина, по которой флаги могут быть ИЛИ, состоит в том, что они были специально написаны, чтобы не отменять друг друга.
Если вы посмотрите на значения этих флагов, вы увидите, что:
CS_HREDRAW = 0x0001 = 0000 0000 0000 0001
CS_VREDRAW = 0x0002 = 0000 0000 0000 0010
Результат ORing этих флагов:
COMBINED = 0x0003 = 0000 0000 0000 0011
Это известно как Битовое поле
Функция знает, какие биты соответствуют каждому флагу, поэтому просмотр установленных битов покажет, как себя вести.