更改标题栏窗口的背景色时遇到问题。是否可以使用SDL2进行更改?要像这样从白色更改为黑色吗
qv7cva1a1#
我认为仅使用SDL2是不可能的,但您可以获得本机窗口并使用它。看你的截图,我假设你使用的是Windows,你可以得到HWND,如下所示(see this answer):
HWND
SDL_SysWMinfo wmInfo; SDL_VERSION(&wmInfo.version); SDL_GetWindowWMInfo(window, &wmInfo); HWND hwnd = wmInfo.info.win.window;
完成后,您需要设置边框颜色和标题颜色(see this answer):
#include <dwmapi.h> COLORREF titlebar_color = 0x0015171E; DwmSetWindowAttribute( hwnd, DWMWINDOWATTRIBUTE::DWMWA_BORDER_COLOR, &titlebar_color, sizeof(titlebar_color) ); DwmSetWindowAttribute( hwnd, DWMWINDOWATTRIBUTE::DWMWA_CAPTION_COLOR, &titlebar_color, sizeof(titlebar_color)) );
当然,所有这些都只能在Windows(我认为是10或更高版本)上运行,而且,据我所知,甚至不能保证运行。所以你可能需要检查所有的错误。另一种解决方案不是您所要求的,但完全在SDL2中完成,即创建无边框窗口并绘制您自己的标题栏...
1条答案
按热度按时间qv7cva1a1#
我认为仅使用SDL2是不可能的,但您可以获得本机窗口并使用它。
看你的截图,我假设你使用的是Windows,你可以得到
HWND
,如下所示(see this answer):完成后,您需要设置边框颜色和标题颜色(see this answer):
当然,所有这些都只能在Windows(我认为是10或更高版本)上运行,而且,据我所知,甚至不能保证运行。所以你可能需要检查所有的错误。
另一种解决方案不是您所要求的,但完全在SDL2中完成,即创建无边框窗口并绘制您自己的标题栏...