簡體   English   中英

如何改變標題欄顏色的背景顏色C++/SDL2

[英]How to change the background color of the title bar color C++/SDL2

我在更改標題欄窗口中的背景顏色時遇到問題。 是否可以使用 SDL2 進行更改? 想從白色變成黑色,就像那樣

背景顏色示例

我認為僅使用 SDL2 是不可能的,但您可以獲得本機窗口並使用它。

查看您的屏幕截圖,我假設您使用的是 Windows。 您可以像這樣獲得HWND請參閱此答案):

SDL_SysWMinfo wmInfo;
SDL_VERSION(&wmInfo.version);
SDL_GetWindowWMInfo(window, &wmInfo);
HWND hwnd = wmInfo.info.win.window;

完成后,您需要同時設置邊框顏色和標題顏色(請參閱此答案):

#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 中完成的解決方案是創建一個無邊框窗口並繪制你自己的標題欄......

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM