小编daw*_*345的帖子

在经典 C++ WinAPI (Win32) 应用程序中获取 Windows 10 主题颜色

我正在寻找如何获取系统主题颜色。我找到了 GetSysColor 和 GetSysColorBrush。然后我用类似的东西测试了它:

    cout << GetSysColorBrush(COLOR_HIGHLIGHT) << endl; //checking the value if it's changing when 
                                                                   //changing system color

    WNDCLASSW wc = {0};
    wc.hbrBackground = GetSysColorBrush(COLOR_HIGHLIGHT);
    wc.hCursor = LoadCursorA(NULL, IDC_ARROW);
    wc.hInstance = hInst;
    wc.lpfnWndProc = WindowProc;
    wc.lpszClassName = L"WindowClass";

    if(!RegisterClassW(&wc)) return -1;

    CreateWindowW(L"WindowClass", L"Window Name", WS_VISIBLE | WS_POPUP, 0, 0, windowWidth - 500, 
                                           windowHeight - 500, NULL, NULL, NULL, NULL);
Run Code Online (Sandbox Code Playgroud)

我认为它有效,因为我有默认的蓝色主题,窗口是蓝色的(完全相同的颜色),然后我将主题更改为绿色,但窗口仍然是蓝色的(显然重新启动程序后)。

现在我的问题是:是否可以获得当前的系统主题颜色?

c++ windows winapi codeblocks

5
推荐指数
1
解决办法
4139
查看次数

标签 统计

c++ ×1

codeblocks ×1

winapi ×1

windows ×1