指定されたコントロールのスタイルまたは拡張スタイルをそれぞれ変更します。
ControlSetStyle Value, Control , WinTitle, WinText, ExcludeTitle, ExcludeText ControlSetExStyle Value, Control , WinTitle, WinText, ExcludeTitle, ExcludeText
正の整数を渡すと、ウィンドウのスタイルを完全に上書きします。つまり、Valueに設定します。
スタイルの追加、削除、切り替えを簡単に行うには、プラス記号(+)、マイナス記号(-)、キャレット(^)をそれぞれ先頭に持つ数値列を渡します。新しいスタイル値は次のように計算されます(CurrentStyleはControlGetStyle、ControlGetExStyle、WinGetStyleまたはWinGetExStyleで取得できます):
| オペレーション | 接頭辞 | 例 | フォーミュラ |
|---|---|---|---|
| 追加 | + | "+0x80" |
NewStyle := CurrentStyle | Value |
| 取り除く | - | "-0x80" |
NewStyle := CurrentStyle & ~Value |
| トグル | ^ | "^0x80" |
NewStyle := CurrentStyle ^ Value |
Valueが負の整数の場合、対応する数値文字列と同じように扱われます。
プレフィックス + または ^ を文字どおり式の中で使うには、プレフィックスまたは値を引用符で囲む必要があります。事例:ControlSetStyle("+0x80")またはControlSetStyle("^" StylesToToggle)。という表現があるからです。 +123は123(接頭辞なし)を生成し、^123はシンタックスエラーとなります。
コントロールのClassNN、テキスト、HWND、またはHwndプロパティを持つオブジェクトを指します。詳しくはControlパラメータをご覧ください。
もしこれらの項目が未設定または省略されたときは、最後に見つかったウィンドウが使用されます。そうでないときは、WinTitleに ウィンドウタイトルまたはターゲットウィンドウを識別するための他の基準、および/またはWinTextにターゲットウィンドウの単一のテキスト要素からの部分文字列(付属のWindow Spyユーティリティを使えばわかります)を指定します。
ExcludeTitleとExcludeTextはウィンドウのタイトルまたはテキストで除外するために使用します。指定の仕方はWinTitleとWinTextに似ていますが、ExcludeTitleはウィンドウのタイトル以外の基準(ウィンドウクラスやHWNDなど)を認識しません。
ウィンドウのタイトルとテキストは大文字と小文字を区別します。DetectHiddenWindows関数とDetectHiddenText関数で変更しない限り、初期設定では非表示ウィンドウは検出されず、非表示テキストは検出されます。ただし、pure HWNDsを使ったときは、DetectHiddenWindowsの設定にかかわらず、非表示ウィンドウは常に検出されます。SetTitleMatchModeで変更しない限り、初期設定ではウィンドウタイトルのどこかにWinTitleまたはExcludeTitleを含んでいればマッチします。
ウィンドウまたはコントロールが見つからないときは、TargetErrorがスローされます。
スタイルを変更できなかった場合、OSErrorがスローされます。部分的な変更は成功とします。
スタイルの一部については、スタイル表をご覧ください。
特定のスタイル変更には、WinRedrawを使用してウィンドウ全体を再描画する必要があります。
ControlSetExStyle only changes generic extended styles, such as WS_EX_CLIENTEDGE (0x200). To change control-specific extended styles, use SendMessage, e.g. SendMessage(0x1036, 0, 0x1, MyListView) where 0x1036 is LVM_SETEXTENDEDLISTVIEWSTYLE and 0x1 is LVS_EX_GRIDLINES. Note that when creating a ListView with AutoHotkey, extended ListView styles can also be specified with the LV option.
ControlGetStyle / ControlGetExStyle、WinSetStyle / WinSetExStyle、スタイル表、Control関数