我们有一个Windows C++应用程序,它使用传统的Windows API CreatePopupMenu
和TrackPopupMenuEx
来呈现上下文菜单。然而,在我更新了一些外部库(即CEF,Chromium Embedded Framework)之后,我们所有的上下文菜单现在都显示为深色主题(不仅仅是CEF的)。这是不必要的,因为我们的应用程序的其余部分总是在一个轻主题中,而不考虑用户设置。
因此,CEF库中的某些更改必须调用某些Win32 API,以更改整个应用程序的主题。我已经在CEF自己的支持论坛上发布了一个问题,但我还没有能够解决这个问题。我的新方法是让CEF改变主题;我把它改回来。问题是,“我该怎么做?”
这个问题并不直接涉及CEF;它是关于API和如何覆盖所有新创建的窗口的主题。
1条答案
按热度按时间brjng4g31#
我不得不使用下面的黑客来恢复灯光模式。它真的很丑,因为它使用了没有文档的Windows API,随时可能崩溃。
代码取自https://github.com/komiyamma/win32-darkmode