Function Reference

_WinAPI_GetSysColor

指定された表示要素の現在の色を取得します。

#Include <WinAPI.au3>
_WinAPI_GetSysColor($iIndex)

 

パラメータ

$iIndex 色を取得される表示要素。次のうちのいずれかです:
$COLOR_3DDKSHADOW - 立体表示要素の濃い影
$COLOR_3DFACE - 立体表示要素とダイアログボックス背景の表面の色
$COLOR_3DHIGHLIGHT - 立体表示要素のハイライト色(光源に面する縁)
$COLOR_3DHILIGHT - 立体表示要素のハイライト色(光源に面する縁)
$COLOR_3DLIGHT - 立体表示要素のライト色(光源に面する縁)
$COLOR_3DSHADOW - 立体表示要素の影の色(光源の反対側に面する縁)
$COLOR_ACTIVEBORDER - アクティブなウィンドウの縁
$COLOR_ACTIVECAPTION - アクティブなウィンドウのタイトルバー
  グラデーション効果が有効な場合、アクティブなウィンドウのタイトルバーのカラーグラデーション左端の色を表します
$COLOR_APPWORKSPACE - マルチドキュメントインターフェイス(MDI)アプリケーションの背景色
$COLOR_BACKGROUND - デスクトップ
$COLOR_BTNFACE - 立体表示要素とダイアログボックス背景の表面の色
$COLOR_BTNHIGHLIGHT - 立体表示要素のハイライト色(光源に面する縁)
$COLOR_BTNHILIGHT - 立体表示要素のハイライト色(光源に面する縁)
$COLOR_BTNSHADOW - 立体表示要素の影の色(光源の反対側に面する縁)
$COLOR_BTNTEXT - プッシュボタンのテキスト
$COLOR_CAPTIONTEXT - キャプション、サイズボックス、スクロールバーの矢印ボックスのテキスト
$COLOR_DESKTOP - デスクトップ
$COLOR_GRADIENTACTIVECAPTION - アクティブなウィンドウのタイトルバーのカラーグラデーション右端の色
  $COLOR_ACTIVECAPTIONで左端の色を指定します
  グラデーション効果が有効かどうか判定するにははSPI_GETGRADIENTCAPTIONSをSystemParametersInfo関数で使用してください
$COLOR_GRADIENTINACTIVECAPTION - 非アクティブなウィンドウのタイトルバーのカラーグラデーション右端の色
  $COLOR_INACTIVECAPTIONで左端の色を指定します
$COLOR_GRAYTEXT - グレイアウトした(無効な)テキスト。現在のディスプレイドライバがソリッドな灰色をサポートしていない場合、この色は0に設定されます。
$COLOR_HIGHLIGHT - コントロールで選択されているアイテム
$COLOR_HIGHLIGHTTEXT - コントロールで選択されているアイテムのテキスト
$COLOR_HOTLIGHT - ハイパーリンク、ホットトラックアイテムの色
$COLOR_INACTIVEBORDER - 非アクティブなウィンドウの縁
$COLOR_INACTIVECAPTION - 非アクティブなウィンドウのキャプション
  グラデーション効果が有効な場合、非アクティブなウィンドウのタイトルバーのカラーグラデーション左端の色を表します
$COLOR_INACTIVECAPTIONTEXT - 非アクティブなキャプションのテキストの色
$COLOR_INFOBK - ツールチップコントロールの背景色
$COLOR_INFOTEXT - ツールチップコントロールのテキスト色
$COLOR_MENU - メニュー背景
$COLOR_MENUHILIGHT - メニューがフラットメニューとして表示される際のメニューアイテムのハイライトに使用される色
  ハイライトされたメニューアイテムは$COLOR_HIGHLIGHTで縁どりされます
  Windows 2000: この値はサポートされていません
$COLOR_MENUBAR - メニューがフラットメニューとして表示される際のメニューバーの背景色
  ただし$COLOR_MENU はメニューポップアップの背景色を表し続けます
  Windows 2000: この値はサポートされていません
$COLOR_MENUTEXT - メニューのテキスト
$COLOR_SCROLLBAR - スクロールバーのグレイの領域
$COLOR_WINDOW - ウィンドウ背景
$COLOR_WINDOWFRAME - ウィンドウフレーム
$COLOR_WINDOWTEXT - ウィンドウのテキスト

 

返し値

指定した要素の赤、緑、青(RGB)のカラー値を返します。

 

注意

上記の定数のためにWindowsConstants.au3が必要です。

$iIndexパラメータが範囲外の場合、返し値はゼロです。ゼロは有効なRGB値でもあるのでシステムカラーが現在のプラットフォームでサポートされているかどうか調べるのにGetSysColorを使用することはできません。代わりにGetSysColor関数を使用して下さい。指定カラーがサポートされていない場合、この関数はNULLを返します。

 

関連

_WinAPI_SetSysColors

 

こちらも参照

MSDNライブラリでGetSysColorを検索して下さい。

 


#AutoIt3Wrapper_Au3Check_Parameters=-d -w 1 -w 2 -w 3 -w 4 -w 5 -w 6
#include <GUIConstantsEx.au3>
#include <WinAPI.au3>
#include <WindowsConstants.au3>

Opt('MustDeclareVars', 1)

_Main()

Func _Main()
    Local $aElements[2] = [$COLOR_ACTIVECAPTION, $COLOR_GRADIENTACTIVECAPTION]
    ; 赤と黄色
    Local $aColors[2] = [255, 65535], $aSaveColors[2]

    GUICreate("My GUI", 300, 200)

    $aSaveColors[0] = _WinAPI_GetSysColor($COLOR_ACTIVECAPTION)
    $aSaveColors[1] = _WinAPI_GetSysColor($COLOR_GRADIENTACTIVECAPTION)

    _WinAPI_SetSysColors($aElements, $aColors)

    GUISetState()

    While 1
        Switch GUIGetMsg()
            Case $GUI_EVENT_CLOSE
                ExitLoop

        EndSwitch
    WEnd

    GUIDelete()

    _WinAPI_SetSysColors($aElements, $aSaveColors)

    Exit

EndFunc   ;==>_Main