次の方法で共有


WM_SETTINGCHANGE メッセージ

SystemParametersInfo 関数がシステム全体の設定を変更したとき、またはポリシー設定が変更されたときに、すべての最上位ウィンドウに送信されるメッセージ。

アプリケーションは、システム パラメーターを変更するときに、すべての最上位ウィンドウに WM_SETTINGCHANGE を送信する必要があります。 (このメッセージはウィンドウに直接送信できません。 WM_SETTINGCHANGE メッセージをすべての最上位ウィンドウに送信するには、 sendMessageTimeout 関数を使用し、 hwnd パラメーターを HWND_BROADCAST に設定します。

ウィンドウは、WindowProc 関数を介してこのメッセージを受け取ります。

#define WM_WININICHANGE                 0x001A
#define WM_SETTINGCHANGE                WM_WININICHANGE

パラメーター

wParam

システムが SystemParametersInfo 呼び出しの結果としてこのメッセージを送信する場合、wParam パラメーターは SystemParametersInfo 関数に渡される uiAction パラメーターの値です。 値の一覧については、「 SystemParametersInfo」を参照してください。

ポリシー設定の変更の結果としてシステムがこのメッセージを送信すると、このパラメーターは適用されたポリシーの種類を示します。 この値は、コンピューター ポリシーが適用された場合は 1、ユーザー ポリシーが適用された場合は 0 です。

ロケール設定の変更の結果としてシステムがこのメッセージを送信すると、このパラメーターは 0 になります。

アプリケーションがこのメッセージを送信する場合、このパラメーターは NULL である必要があります。

lParam

システムが SystemParametersInfo 呼び出しの結果としてこのメッセージを送信すると、lParam は、変更されたシステム パラメーターを含む領域を示す文字列へのポインターです。 通常、このパラメーターは、どの特定のシステム パラメーターが変更されたかを示すものではありません。 (一部のアプリケーションでは、このメッセージが送信され、lParam が NULL に設定されていることに注意してください)。一般に、このメッセージが表示されたら、アプリケーションで使用されているシステム パラメーター設定をチェックして再読み込みする必要があります。

この文字列には、レジストリ キーの名前、またはWin.ini ファイル内のセクションの名前を指定できます。 文字列がレジストリ名の場合、通常はレジストリ内のリーフ ノードのみを示し、完全パスは示しません。

システムがポリシー設定の変更の結果としてこのメッセージを送信すると、このパラメーターは文字列 "Policy" を指します。

ロケール設定の変更の結果としてシステムがこのメッセージを送信すると、このパラメーターは文字列 "intl" を指します。

システムまたはユーザーの環境変数の変更を有効にするには、 lParam を文字列 "Environment" に設定してこのメッセージをブロードキャストします。

戻り値

型: LRESULT

このメッセージを処理する場合は、0 を返します。

注釈

lParam パラメーターは、システム メトリックが変更されたことを示します。たとえば、CONVERTIBLESLATEMODE インジケーターが切り替えられた場合は "ConvertibleSlateMode" 、DOCKED インジケーターが切り替えられた場合は "SystemDockMode" などです。

必要条件

要件
サポートされている最小のクライアント
Windows 2000 Professional [デスクトップ アプリのみ]
サポートされている最小のサーバー
Windows 2000 Server [デスクトップ アプリのみ]
ヘッダー
Winuser.h (Windows.h を含む)

関連項目

ポリシー イベント

SendMessageTimeout

SystemParametersInfo