我刚刚进入一个拥有相当庞大代码库的项目.
我主要处理C++,他们编写的很多代码都使用布尔逻辑的双重否定.
if (!!variable && (!!api.lookup("some-string"))) {
do_some_stuff();
}
Run Code Online (Sandbox Code Playgroud)
我知道这些人都是聪明的程序员,很明显他们不会偶然这样做.
我不是经验丰富的C++专家,我唯一猜测他们这样做的原因是他们想要绝对肯定被评估的值是实际的布尔表示.所以他们否定它,然后再次否定它以使其恢复到它的实际布尔值.
这是正确的,还是我错过了什么?
我有一个窗户,我 SetWindowPos(window, HWND_TOP, 0, 0, GetSystemMetrics(SM_CXSCREEN), GetSystemMetrics(SM_CYSCREEN), SWP_FRAMECHANGED);
它覆盖了整个屏幕,确定,但也需要一段时间(0.5秒)来覆盖任务栏.
有没有办法立即过来任务栏?我发现设置HWND_TOPMOST立即执行,但它仍然高于所有其他窗口,即使我切换应用程序 - 这是我不想要的.此外,如果我首先隐藏窗口然后显示它,它会以某种方式强制窗口重绘并立即覆盖任务栏,但它会闪烁(因为隐藏).还有另外一种方法吗?