use*_*920 4 c c++ windows bits class
structure.style = CS_HREDRAW | CS_VREDRAW;
Run Code Online (Sandbox Code Playgroud)
这是我发现的用于注册窗口类并设置调整大小设置的代码行,但它是如何工作的,结构的值style
是什么?
中间的管道符号|
是按位的,OR
所以它会设置style
为位的组合,CS_HREDRAW | CS_VREDRAW
所以这对 Windows 意味着什么,它如何知道两者是否都设置了,一个是还是没有?
可能是我多虑了...
标志可以被 OR'd 的原因是因为它们被故意写入而不是相互抵消。
如果您查看这些标志的值,您将看到:
CS_HREDRAW = 0x0001 = 0000 0000 0000 0001
CS_VREDRAW = 0x0002 = 0000 0000 0000 0010
Run Code Online (Sandbox Code Playgroud)
ORing 这些标志的结果是:
COMBINED = 0x0003 = 0000 0000 0000 0011
Run Code Online (Sandbox Code Playgroud)
这称为位域
该函数知道哪些位对应于每个标志,因此查看设置了哪些位将告诉它如何表现。