You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

如何通过WinAPI在C++中修改默认强调色?求代码示例

在C++中通过WinAPI修改系统默认强调色

方法1:修改注册表并发送系统通知

系统强调色的配置存储在当前用户注册表中,路径为HKEY_CURRENT_USER\Software\Microsoft\Windows\CurrentVersion\Themes\Personalize,对应键AccentColor为DWORD类型,值采用BGR格式(例如RGB(0,120,215)对应0xD77800)。

步骤:

  • 打开目标注册表键
  • 设置AccentColor的目标值
  • 关闭注册表键
  • 发送系统消息通知设置更新

代码示例:

#include <windows.h>
#include <iostream>

int main() {
    // 目标强调色:蓝色(RGB(0,120,215)),转换为BGR格式DWORD值0xD77800
    DWORD accentColor = 0xD77800;

    HKEY hKey;
    LSTATUS status = RegOpenKeyEx(HKEY_CURRENT_USER, 
        L"Software\\Microsoft\\Windows\\CurrentVersion\\Themes\\Personalize",
        0, KEY_SET_VALUE, &hKey);
    
    if (status != ERROR_SUCCESS) {
        std::cerr << "打开注册表键失败,错误码:" << status << std::endl;
        return 1;
    }

    status = RegSetValueEx(hKey, L"AccentColor", 0, REG_DWORD, 
        (BYTE*)&accentColor, sizeof(DWORD));
    
    if (status != ERROR_SUCCESS) {
        std::cerr << "设置AccentColor失败,错误码:" << status << std::endl;
        RegCloseKey(hKey);
        return 1;
    }

    RegCloseKey(hKey);

    // 广播通知系统设置变更
    SendMessageTimeout(HWND_BROADCAST, WM_SETTINGCHANGE, 0, 
        (LPARAM)L"Personalization", SMTO_ABORTIFHUNG, 5000, nullptr);

    std::cout << "强调色更新成功" << std::endl;
    return 0;
}

注意:

  • 该方法适用于Windows 10及以上版本,无需管理员权限
  • 颜色值需转换为BGR格式,因为DWORD采用小端存储

方法2:使用Windows Runtime API(Windows 10 1607+)

若程序支持WinRT环境,可直接调用UISettings类修改强调色,无需手动处理注册表和通知。

代码示例(需项目启用WinRT支持):

#include <winrt/Windows.UI.ViewManagement.h>
#include <iostream>

using namespace winrt;
using namespace Windows::UI::ViewManagement;

int main() {
    init_apartment();

    UISettings uiSettings;
    // 设置强调色为红色(RGBA格式,参数依次为Alpha、Red、Green、Blue)
    uiSettings.put_ColorValue(UIColorType::Accent, Windows::UI::Color{ 255, 255, 0, 0 });

    std::cout << "通过WinRT API更新强调色成功" << std::endl;
    return 0;
}

注意:

  • 需在Visual Studio中配置项目启用WinRT支持(项目属性→常规→Windows SDK版本选择10.0及以上)
  • 更改后系统会自动刷新UI,无需额外通知

内容的提问来源于stack exchange,提问作者RBMKBlaze

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.08.17 03:15:42