こんにちは。
Win98ではレジストリの HKEY_CURRENT_USER\Control Panel\Colors には
HotTrackingColorは見当たらないのですが、clHotLightというのは
どこで取得しているのでしょうか?
あと、
ButtonAlternateFace
MenuHilight
MenuBar
はWinXPから追加された値ですか?
教えてください。
どうぞよろしくお願いします。
>Win98ではレジストリの HKEY_CURRENT_USER\Control Panel\Colors には
>HotTrackingColorは見当たらないのですが、clHotLightというのは
>どこで取得しているのでしょうか?
Win98がないのでWin98のことはわかりませんがWinXPにはありました。
ButtonAlternateFace/MenuHilight/MenuBar はWinXPのテーマ関連で追加になったものだと思われます。
WinXPのテーマ機能サポートによりレジストリが追加されているため
システムカラーの取得はレジストリから取得するより GetSysColor(USER32.DLL)を使用したほうが良いと思われます。
レジストリは[HKEY_CURRENT_USER\Control Panel\Appearance]あたり・・・
また、MS以外のテーマ化ソフトが存在していますがそれらは上記のレジストリとは別の領域に管理情報を持っているようです。
---
参考)
GetSysColor(25); // ButtonAlternateFace
GetSysColor(26); // HotTrackingColor(COLOR_HOTLIGHT)
GetSysColor(29); // MenuHilight (COLOR_MENUHILIGHT)
GetSysColor(30); // MenuBar (COLOR_MENUBAR)
指定された値がそのプラットホームでサポートされていない場合
GetSysColor は0を返しますので有効か無効か不明です。
GetSysColorBrush が 0 を返せば無効なカラーインデックスです。
Win98SEの場合、レジストリの HKEY_CURRENT_USER\Control Panel\Colors には
有り HotTrackingColor
有り ButtonAlternateFace
無し MenuHilight
無し MenuBar
ありがとうございます。
GetSysColorで取得しているんですね。
レジストリから取得しようと思っていたんですが、
GetSysColorBrushを使えばプラットフォームが違っても
取得できるかがわかるので便利ですね。
すごく参考になりました。
kkkさん、98えすいーさん、本当にありがとうございました。
ツイート | ![]() |