1

WTL C ++アプリケーションがあり、ユーザーがいくつかのUI要素に異なる色を選択し、GradientFillAPI呼び出しを使用してグラデーション塗りつぶしを適用できるようにしたいと考えています。ただし、ユーザーにグラデーションの開始色と終了色を選択させるのではなく、「ベース」色を選択して、アプリケーションで適切な開始/終了色を自動的に計算できるようにしたいと思います。最終的に、Windowsがさまざまなテーマの要素に使用するものと同様の塗りつぶしを作成したいと思います。基本色は、グラデーションの「中間」色である可能性があります。私のアプリケーションでは、グラデーションの開始時にわずかに明るい色を計算し、グラデーションの終了にわずかに暗い色を計算します。または、ベースを開始色として使用して終了を計算することも、その逆も可能です。

RGBマクロの魔法を使えば、これは比較的簡単だと思いますが、どこから始めればよいのか本当にわかりません。どんなアイデアでも大歓迎です。

4

1 に答える 1

2

RGB色空間はこれには適していません。HSLまたはHSVを使用する:個々のコンポーネントを変更することで、見栄えの良いグラデーションを簡単に自動生成できます。HSL/VからAPIで使用できるRGBトリプレットへの変換は簡単です。

于 2010-01-29T19:46:58.733 に答える