2

通常のウィンドウのウィンドウの境界 (フレーム) の色を読み取ろうとしています。

それはそれwindow->palette().color(QPalette::XXXX)を行うようですが、何XXXXですか?またはパレットでは不可能ですか?もしそうなら、どのように?

4

1 に答える 1

2

GetSysColorBrushネイティブ関数として使用する必要があります:

QColor getWindowFrameColor() {
    // This is the only way to detect that a given color is supported
    HBRUSH brush = GetSysColorBrush(COLOR_ACTIVEBORDER);
    if (brush) {
        DWORD color = GetSysColor(COLOR_ACTIVEBORDER);
        return QColor(GetRValue(color), GetGValue(color), GetBValue(color));
        // calling DeleteObject(brush) is unnecessary, but would be harmless
    }
    return QColor();
}

Qt ソースで を検索しましたがCOLOR_ACTIVEBORDER、それを取得する他の唯一の方法は、WebKit でカスタム JavaScript コードを実行することです。

于 2013-10-14T20:17:54.137 に答える