我们观察到一个奇怪的情况,VS2015 Update3编译器会在没有明显原因的情况下省略部分代码.
我们发现了
我们设法将这个代码段的罪魁祸首最小化:
#include <stdio.h>
#include <tchar.h>
#include <stdlib.h>
int _tmain(int, _TCHAR*[])
{
volatile int someVar = 1;
const int indexOffset = someVar ? 0 : 1; // Loop omitted
// const int indexOffset = !someVar; // Loop omitted
// const int indexOffset = 0; // Good
// const int indexOffset = 1; // Good
// const int indexOffset = someVar; // Good
// const int indexOffset = someVar + 1; // …Run Code Online (Sandbox Code Playgroud) c++ compiler-errors compiler-optimization visual-studio-2015
从October 2018 Update (version 1809)Win10 开始,Windows资源管理器中已支持Dark主题。
可以在这里配置:
Desktop | Context Menu | Personalize | Colors | Choose your default app mode = DarkHKEY_CURRENT_USER\Software\Microsoft\Windows\CurrentVersion\Themes\Personalize\AppsUseLightTheme=DWORD:0尽管此设置已经存在了一段时间,但它仅影响UWP应用程序。但是,在此Windows 10版本中,它也会影响Windows资源管理器,后者是一个桌面应用程序。这意味着Windows现在对其具有内部支持。但是,Windows资源管理器以外的桌面应用程序目前不受影响。
我想在我的应用程序中使用它。它是如何实现的?是否有某种方式(清单,WINAPI等)订阅新的深色主题?
更新1:
我注意到Windows资源管理器控制面板部分亮而部分暗,因此它应该是每个窗口设置,而不是每个进程设置。
另一个示例:在所有桌面应用程序中,“打开文件”对话框均变暗,而应用程序本身仍保持旧的主题。
更新2:
我尝试SetWindowTheme(hwnd, L"Explorer", NULL);了TreeView和ListView。这会明显改变TreeView样式(+展开按钮变为V),但窗口保持白色。