我可能完全错了,但我偶然发现了这篇文章:
我按照以下步骤操作:
1/
#include <dwmapi.h>
2/
#ifndef DWMWA_USE_IMMERSIVE_DARK_MODE
#define DWMWA_USE_IMMERSIVE_DARK_MODE 20
#endif
3/
致电
InitInstance
:
BOOL value = TRUE;
::DwmSetWindowAttribute(m_pMainWnd->GetSafeHwnd(),
DWMWA_USE_IMMERSIVE_DARK_MODE,
&value, sizeof(value));
如您所见,我正在使用基于
CDialog
的应用程序。
4/我添加了
Dwmapi.lib
。
它编译得很好。但是当我运行我的应用程序时,标题栏是not黑暗的。为什么?
一个相关的问题是文章中指出:
那么对于 MFC 对话框应用程序我们该如何处理呢?本文提供了检测系统主题更改以及为 Win32 应用程序窗口请求浅色或深色标题栏的方法示例。 它不涵盖如何使用深色模式颜色集重新绘制和渲染应用程序 UI 的细节。
请注意,我的 Windows 11 电脑正在深色模式下运行。
m_pMainWnd->GetSafeHwnd()
中运行,则
NULL
返回
InitInstance
,因为窗口尚未创建。尝试
OnInitDialog
,它会起作用的。