Windows APIによるプログラミングを勉強中です。
よく、Windowsの壁紙に直接カレンダーを描画するアプリがありますが、
それがどのような方法で実装されているのか、実際のコードを読んでみたいです。
透明なフォームを持つアプリを常駐させる方法や、壁紙の画像ファイルを編集して文字を書き込む方法ではなく、
Windowsがメモリ上に保持してる(?)画像の情報に直接、文字を描画するような方法です。(実際どのような方法で実現されているのかわからないので想像ですが...)
実際に動作するソースコードを回答していただけるとベターですが、そのようなソースコードが公開されているサイトへのリンクでも結構です。
プログラミング言語は C/C++ を希望しますが、その他の言語でもWindowsのAPIの使い方として参考になるようなものであれば、それでも結構です。
今、自分の持ってる知識の範囲内でプログラムを書いてみましたが、これだと、他のウィンドウが上に重なった場合、文字が消えてしまい再描画されませんでした。
http://gist.github.com/630543
どうかよろしくお願いします。
コメントで挙げられているShinononというソフトがどういう実装になっているかはわかりませんが、可能性としては以下のような方法だと思われます。
1)SystemParametersInfoにSPI_GETDESKWALLPAPERを指定して現在の壁紙ファイルを取得する
2)壁紙ファイルをメモリ上に展開して、その上に任意の文字を描画する。
3)テンポラリディレクトリ等に画像ファイルを保存する。
4)SystemParametersInfoにSPI_SETDESKWALLPAPERを指定して、新しい(文字を書き込んだ)画像ファイルを壁紙に指定する
SPI_SETDESKWALLPAPERで壁紙を変更する際に、第四引数にSPIF_UPDATEINIFILEを指定しなければ、レジストリに書き込まれないため一時的な壁紙の変更になります。(再起動すれば自動的に元に戻る)
また元の壁紙ファイルを変更することもありません。
ただし、タイリングや中央配置などは自分でエミュレートしなければなりません。
壁紙が描画されるデスクトップウィンドウはエクスプローラ(explorer.exe)が管理しており、ActiveDesktopのような方法を除いて、直接関与(描画)するAPIはないと思います。
リンク先を参考に、GetDC(NULL)を試してみましたが期待していたものと少し違うようです。
GetDC(NULL)で取得したhdcに描画すると、スクリーンのの最前面のレイヤー(?)に描画されてしまいます。
また、この方法だと描画した内容を維持するために、アプリケーションを常駐させてWM_PAINTメッセージでテキストを再描画させる処理が必要だと思われます。
アプリケーションを常駐させない方法があればよろしくお願いします。
インターネットで調べてみたら見つかると思いますよ
いろいろ調べたんですが、見つけたのは透明なフォームを持つアプリケーションや、デスクトップのウィンドウをサブクラス化するアプリケーションを常駐させる方法でした。
また、壁紙画像のファイルを開いて文字を書き込んで保存し、それを壁紙として設定するという方法も多くありました。
質問の趣旨はそういう方法ではなく、アプリケーションも常駐させず、壁紙画像ファイルに触らずに壁紙画像に文字を書き込みたいというものです。
アプリケーションも常駐させず、壁紙画像ファイルに触らずに壁紙画像に文字を書き込む方法がありましたらよろしくお願いします。
コメントで挙げられているShinononというソフトがどういう実装になっているかはわかりませんが、可能性としては以下のような方法だと思われます。
1)SystemParametersInfoにSPI_GETDESKWALLPAPERを指定して現在の壁紙ファイルを取得する
2)壁紙ファイルをメモリ上に展開して、その上に任意の文字を描画する。
3)テンポラリディレクトリ等に画像ファイルを保存する。
4)SystemParametersInfoにSPI_SETDESKWALLPAPERを指定して、新しい(文字を書き込んだ)画像ファイルを壁紙に指定する
SPI_SETDESKWALLPAPERで壁紙を変更する際に、第四引数にSPIF_UPDATEINIFILEを指定しなければ、レジストリに書き込まれないため一時的な壁紙の変更になります。(再起動すれば自動的に元に戻る)
また元の壁紙ファイルを変更することもありません。
ただし、タイリングや中央配置などは自分でエミュレートしなければなりません。
壁紙が描画されるデスクトップウィンドウはエクスプローラ(explorer.exe)が管理しており、ActiveDesktopのような方法を除いて、直接関与(描画)するAPIはないと思います。
ほお、この方法が一番やりたいことに近い気がします。
試してみます。
うーん。この手の方法は検索でよく見つかるんですが、再描画しないと消えてしまうため、アプリケーションの常駐が必要となってしまうんですよね。
アプリケーションの常駐が不要な方法がありましたらお願いします。
SystemParametersInfo
http://msdn.microsoft.com/ja-jp/library/ms695625.aspxhttp://msdn...
システム全体に関するパラメータのいずれかを取得または設定します。この関数を使ってパラメータを設定する際に、ユーザープロファイルを更新することもできます。
コピーBOOL SystemParametersInfo(
UINT uiAction, // 取得または設定するべきシステムパラメータ
UINT uiParam, // 実施するべき操作によって異なる
PVOID pvParam, // 実施するべき操作によって異なる
UINT fWinIni // ユーザープロファイルの更新オプション
);
パラメータ
uiAction
取得または設定するべき、システム全体のパラメータを指定します。次の値のいずれかを指定します。
アクセシビリティ(ユーザー補助機能)のフラグは、次のとおりです。
ユーザー補助のフラグ 意味
SPI_GETACCESSTIMEOUT ユーザー補助に関連付けられているタイムアウト時間に関する情報を取得します。pvParam パラメータで、1 個の 構造体へのポインタを指定します。関数から制御が返ると、この構造体に、ユーザー補助のタイムアウト時間に関する情報が格納されます。ACCESSTIMEOUT 構造体の cbSize メンバと、この関数の uiParam パラメータの両方で、sizeof(ACCESSTIMEOUT) を指定します。
SPI_GETFILTERKEYS ユーザー補助のフィルタキーに関する情報を取得します。pvParam パラメータで、1 個の 構造体へのポインタを指定します。関数から制御が返ると、この構造体に、フィルタキーに関する情報が格納されます。FILTERKEYS 構造体の cbSize メンバと、この関数の uiParam パラメータの両方で、sizeof(FILTERKEYS) を指定します。
SPI_GETHIGHCONTRAST Windows 95/98 と Windows 2000:ユーザー補助のハイコントラスト機能に関する情報を取得します。pvParam パラメータで、1 個の 構造体へのポインタを指定します。関数から制御が返ると、この構造体に、ハイコントラスト機能に関する情報が格納されます。HIGHCONTRAST 構造体の cbSize メンバと、この関数の uiParam パラメータの両方で、sizeof(HIGHCONTRAST) を指定します。
SPI_GETMOUSEKEYS ユーザー補助のマウスキーに関する情報を取得します。pvParam パラメータで、1 個の 構造体へのポインタを指定します。関数から制御が返ると、この構造体に、マウスキーに関する情報が格納されます。MOUSEKEYS 構造体の cbSize メンバと、この関数の uiParam パラメータの両方で、sizeof(MOUSEKEYS) を指定します。
SPI_GETSCREENREADER Windows 95/98 と Windows 2000:スクリーンリーダー(スクリーンレビューアユーティリティとも呼びます)が動作しているかどうかを調べます。スクリーンリーダーは、文字情報をスピーチシンセサイザや点字ディスプレイなどのデバイスへ送信します。このフラグが指定されている場合、アプリケーションは、通常はグラフィックで表示される情報を、テキスト形式で提供するべきです。
pvParam パラメータで、1 個の BOOL 型変数へのポインタを指定します。スクリーンリーダーが動作している場合はこの変数に 0 以外の値(TRUE)が、それ以外の場合は 0(FALSE)が格納されます。
SPI_GETSERIALKEYS Windows 95/98:ユーザー補助のシリアルキーデバイスに関する情報を取得します。pvParam パラメータで、1 個の 構造体へのポインタを指定します。関数から制御が返ると、この構造体に、シリアルキーデバイスに関する情報が格納されます。SERIALKEYS 構造体の cbSize メンバと、この関数の uiParam パラメータの両方で、sizeof(SERIALKEYS) を指定します。
Windows NT/2000:サポートされていません。
SPI_GETSHOWSOUNDS ユーザー補助の「サウンド解説を使う」が有効になっているかどうかを調べます。この機能がオンになっている場合、通常は情報をサウンドでのみ提供する状況で、その情報を画面に表示するようユーザーが要求していることを意味します。pvParam パラメータで、1 個の BOOL 型変数へのポインタを指定します。この機能が有効になっている場合はこの変数に TRUE が、無効になっている場合は FALSE が格納されます。
この関数でこの値を指定すると、GetSystemMetrics (SM_SHOWSOUNDS) を呼び出した場合と同じ結果が得られます。後者の方法が推奨されています。
SPI_GETSOUNDSENTRY ユーザー補助のサウンド表示に関する情報を取得します。pvParam パラメータで、1 個の 構造体へのポインタを指定します。関数から制御が返ると、この構造体に、サウンド表示に関する情報が格納されます。SOUNDSENTRY 構造体の cbSize メンバと、この関数の uiParam パラメータで、sizeof(SOUNDSENTRY) を指定します。
SPI_GETSTICKYKEYS ユーザー補助の固定キーに関する情報を取得します。pvParam パラメータで、1 個の 構造体へのポインタを指定します。関数から制御が返ると、この構造体に、固定キーに関する情報が格納されます。STICKYKEYS 構造体の cbSize メンバと、この関数の uiParam パラメータの両方で、sizeof(STICKYKEYS) を指定します。
SPI_GETTOGGLEKEYS ユーザー補助の切り替え(トグル)キーに関する情報を取得します。pvParam パラメータで、 構造体へのポインタを指定します。関数から制御が返ると、この構造体に、切り替えキーに関する情報が格納されます。関数を呼び出す前に、TOGGLEKEYS 構造体の cbSize メンバと、この関数の uiParam パラメータの両方で、sizeof(TOGGLEKEYS) を指定します。
SPI_SETACCESSTIMEOUT ユーザー補助機能に関連付けられているタイムアウト時間に関する情報を設定します。pvParam パラメータで、1 個の 構造体へのポインタを指定します。この構造体で、新しいパラメータを指定しておきます。この構造体の cbSize メンバと、この関数の uiParam パラメータの両方で、sizeof(ACCESSTIMEOUT) を指定します。
SPI_SETFILTERKEYS ユーザー補助のフィルタキーに関する情報を設定します。pvParam パラメータで、1 個の 構造体へのポインタを指定します。この構造体で、新しいパラメータを指定しておきます。この構造体の cbSize メンバと、この関数の uiParam パラメータの両方で、sizeof(FILTERKEYS) を指定します。
SPI_SETHIGHCONTRAST Windows 95/98 と Windows 2000:ユーザー補助のハイコントラスト機能に関する情報を設定します。pvParam パラメータで、1 個の 構造体へのポインタを指定します。この構造体で、新しいパラメータを指定しておきます。この構造体の cbSize メンバと、この関数の uiParam パラメータの両方で、sizeof(HIGHCONTRAST) を指定します。
SPI_SETMOUSEKEYS ユーザー補助のマウスキーに関する情報を設定します。pvParam パラメータで、1 個の 構造体へのポインタを指定します。この構造体で、新しいパラメータを指定しておきます。この構造体の cbSize メンバと、この関数の uiParam パラメータの両方で、sizeof(MOUSEKEYS) を指定します。
SPI_SETSCREENREADER Windows 95/98 と Windows 2000:スクリーンリーダー(スクリーンレビューアユーティリティとも呼びます)を動作させるかどうかを設定します。uiParam パラメータで、動作させる場合は 0 以外の値(TRUE)を、動作させない場合は 0(FALSE)を指定します。
SPI_SETSERIALKEYS Windows 95/98:ユーザー補助のシリアルキーデバイスに関する情報を設定します。pvParam パラメータで、1 個の 構造体へのポインタを指定します。この構造体で、新しいパラメータを指定しておきます。この構造体の cbSize メンバと、この関数の uiParam パラメータの両方で、sizeof(SERIALKEYS) を指定します。
Windows NT/2000:サポートされていません。
SPI_SETSHOWSOUNDS ユーザー補助の「サウンド解説を使う」を有効または無効に設定します。uiParam パラメータで、この機能を有効にする場合は 0 以外の値(TRUE)を、無効にする場合は 0(FALSE)を指定します。
SPI_SETSOUNDSENTRY ユーザー補助のサウンド表示に関する情報を設定します。pvParam パラメータで、1 個の 構造体へのポインタを指定します。この構造体で、新しいパラメータを指定しておきます。この構造体の cbSize メンバと、この関数の uiParam パラメータの両方で、sizeof(SOUNDSENTRY) を指定します。
SPI_SETSTICKYKEYS ユーザー補助の固定キーに関する情報を設定します。pvParam パラメータで、1 個の 構造体へのポインタを指定します。この構造体で、新しいパラメータを指定しておきます。この構造体の cbSize メンバと、この関数の uiParam パラメータの両方で、sizeof(STICKYKEYS) を指定します。
SPI_SETTOGGLEKEYS ユーザー補助のトグルキーに関する情報を設定します。pvParam パラメータで、1 個の 構造体へのポインタを指定します。この構造体で、新しいパラメータを指定しておきます。この構造体の cbSize メンバと、この関数の uiParam パラメータの両方で、sizeof(TOGGLEKEYS) を指定します。
デスクトップのフラグは、次のとおりです。
デスクトップのフラグ 意味
SPI_GETDESKWALLPAPER Windows 2000:デスクトップの壁紙として表示されるビットマップのフルパス名を取得します。pvParam パラメータで、1 個のバッファへのポインタを指定します。関数から制御が返ると、このバッファに、フルパス名を表す、NULL で終わる文字列が格納されます。uiParam パラメータで、pvParam パラメータが指すバッファのサイズを文字数単位で指定します。取得される文字列は、MAX_PATH 文字以内です。デスクトップの壁紙が指定されていない場合、空文字列が取得されます。
SPI_GETFONTSMOOTHING フォントスムージング機能(スクリーンフォントの縁をなめらかにする機能)が有効になっているかどうかを調べます。この機能を有効にすると、フォントの境界を通常とは異なるグレースケールで表示することによってアンチエイリアシングを行い、フォントの曲線を滑らかに見せます。
pvParam パラメータで、1 個の BOOL 型変数へのポインタを指定します。スムージング機能が有効になっている場合はこの変数に 0 以外の値(TRUE)が、それ以外の場合は 0(FALSE)が格納されます。
Windows 95:SPI_GETFONTSMOOTHING フラグは、Microsoft Plus!が既にインストールされている場合にのみ使えます。詳細については、この関数の最後の方にある「Windows 95/98 のフラグ」の表の SPI_GETWINDOWSEXTENSION を参照してください。
SPI_GETWORKAREA プライマリモニタの作業領域のサイズを取得します。作業領域とは、画面全体からシステムのタスクバーやアプリケーションのツールバーが占有する領域を除いた部分を意味します。pvParam パラメータで、1 個の 構造体へのポインタを指定します。関数から制御が返ると、この構造体に、仮想画面の座標に基づく、作業領域の座標が格納されます。
プライマリモニタ以外のモニタの作業領域を取得するには、 関���を使います。
SPI_SETCURSORS システムカーソルを再ロードします。uiParam パラメータで 0 を、pvParam パラメータで NULL を指定してください。
SPI_SETDESKPATTERN Win.ini ファイルの Pattern= エントリを読み込むよう Windows に指示し、デスクトップのパターンを設定します。
SPI_SETDESKWALLPAPER デスクトップに表示される壁紙を設定します。pvParam パラメータの値に基づいて、新しい壁紙が決まります。壁紙のビットマップを指定するには、pvParam パラメータで、ビットマップファイルの名前を表す、NULL で終わる文字列へのポインタを指定します。pvParam パラメータで空の文字列("")を指定すると、壁紙は表示されなくなります。pvParam パラメータで SETWALLPAPER_DEFAULT または NULL を指定すると、既定の壁紙へ戻ります。
SPI_SETFONTSMOOTHING フォントスムージング機能(スクリーンフォントの縁をなめらかにする機能)を有効または無効にします。この機能を有効にすると、フォントの境界を通常とは異なるグレースケールで表示することによってアンチエイリアシングを行い、フォントの曲線を滑らかに見せます。
この機能を有効にする場合は uiParam パラメータで 0 以外の値(TRUE)を、無効にする場合は 0(FALSE)を指定します。
Windows 95:SPI_SETFONTSMOOTHING フラグは、Microsoft Plus!が既にインストールされている場合にのみ使えます。詳細については、この関数の最後の方にある「Windows 95/98 のフラグ」の表の SPI_GETWINDOWSEXTENSION を参照してください。
SPI_SETWORKAREA 作業領域のサイズを設定します。作業領域とは、画面全体からシステムのタスクバーやアプリケーションのツールバーが占有する領域を除いた部分を意味します。pvParam パラメータで、仮想画面の座標に基づく、設定するべき作業領域の座標を保持している、1 個の 構造体へのポインタを指定します。マルチモニタのシステムでは、この関数は、指定された長方形を保持しているモニタの作業領域を設定します。
パラメータで NULL を指定すると、この関数はプライマリモニタの作業領域を画面全体に設定します。
アイコンのフラグは、次のとおりです。
アイコンのフラグ 意味
SPI_GETICONMETRICS アイコンに関連付けられているメトリックを取得します。pvParam パラメータで、1 個の 構造体へのポインタを指定します。関数から制御が返ると、この構造体に、アイコンのメトリックに関する情報が格納されます。ICONMETRICS 構造体の cbSize メンバと、この関数の uiParam パラメータの両方で、sizeof(ICONMETRICS) を指定します。
SPI_GETICONTITLELOGFONT アイコンのタイトルのフォントに関する論理フォント情報を取得します。pvParam パラメータで、1 個の 構造体へのポインタを指定します。関数から制御が返ると、この構造体に、論理フォントの情報が格納されます。uiParam パラメータで、sizeof(LOGFONT) を指定します。
SPI_GETICONTITLEWRAP アイコンタイトルの折り返しが有効になっているかどうかを調べます。pvParam パラメータで、1 個の BOOL 型変数へのポインタを指定します。折り返しが有効になっている場合はこの変数に 0 以外の値(TRUE)が、それ以外の場合は 0(FALSE)が格納されます。
SPI_ICONHORIZONTALSPACING アイコンを整列するときに使われるグリッドの幅をピクセル単位で設定または取得します。アイコンの一覧を表示するときに、システムはこの幅を使います。
この値を設定する場合は、uiParam パラメータで新しい値を、pvParam パラメータで NULL を指定します。SM_CXICON 未満の値を指定することはできません。
この値を取得する場合は、pvParam パラメータで 1 個の整数型変数を指定します。関数から制御が返ると、この変数に、現在の値が格納されます。
SPI_ICONVERTICALSPACING アイコンを整列するときに使われるグリッドの高さを設定または取得します。
この値を設定する場合は、uiParam パラメータで新しい値を、pvParam パラメータで NULL を指定します。SM_CYICON 未満の値を指定することはできません。
この値を取得する場合は、pvParam パラメータで 1 個の整数型変数を指定します。関数から制御が返ると、この変数に、現在の値が格納されます。
SPI_SETICONMETRICS アイコンに関連付けられるメトリックを設定します。pvParam パラメータで、1 個の 構造体へのポインタを指定します。この構造体で、新しいパラメータを指定しておきます。この構造体の cbSize メンバと、この関数の uiParam パラメータの両方で、sizeof(ICONMETRICS) を指定します。
SPI_SETICONS システムアイコンを再ロードします。uiParam パラメータで 0、pvParam パラメータで NULL を指定してください。
SPI_SETICONTITLELOGFONT アイコンのタイトルを表示するために使われるフォントを設定します。pvParam パラメータで、1 個の 構造体へのポインタを指定します。この構造体で、新しいパラメータを指定しておきます。uiParam パラメータで、sizeof(LOGFONT) を指定します。
SPI_SETICONTITLEWRAP アイコンタイトルの折り返しを有効または無効にします。折り返しを有効にする場合は uiParam パラメータで 0 以外の値(TRUE)を、無効にする場合は 0(FALSE)を指定します。
入力フラグは次のとおりです。キーボード、マウス、入力言語、警告のビープ音に関係するフラグが含まれています。
入力フラグ 意味
SPI_GETBEEP 警告のビープ音がオンになっているかどうかを調べます。
pvParam パラメータで、1 個の BOOL 型変数へのポインタを指定します。ビープ音がオンになっている場合はこの変数に 0 以外の値(TRUE)が、オフになっている場合は 0(FALSE)が格納されます。
SPI_GETDEFAULTINPUTLANG システムの既定の入力言語を表す入力ロケール識別子(キーボードレイアウト)を取得します。pvParam パラメータで、1 個の HKL 型変数へのポインタを指定します。関数から制御が返ると、この変数に、入力ロケール識別子が格納されます。詳細については、MSDN ライブラリの「」を参照してください。
SPI_GETKEYBOARDCUES Windows 98 と Windows 2000:メニューアクセスキーに、必ず下線を付けるかどうかを調べます。pvParam パラメータで、1 個の BOOL 型変数を指定します。関数から制御が返ると、メニューアクセスキーに必ず下線を付ける場合はこの変数に 0 以外の値(TRUE)が、キーボードからメニューを呼び出したときのみ下線を付ける場合は 0(FALSE)が格納されます。
SPI_GETKEYBOARDDELAY キーボードのプロパティの「表示までの待ち時間」を取得します。0(リピート入力を開始するまで約 250ms の待ち時間)~3(約 1 秒の待ち時間)の範囲で値が規定されています。各値に対応する実際の待ち時間は、ハードウェアによって異なることがあります。pvParam パラメータで、1 個の整数型変数へのポインタを指定します。関数から制御が返ると、この変数に、待ち時間を示す値が格納されます。
SPI_GETKEYBOARDPREF Windows 95/98 と Windows 2000:ユーザー補助の「アプリケーションにキーボードのヘルプを追加する」(または「プログラムで追加のキーボードヘルプを表示する」)が有効になっているかどうかを調べます。これは、ユーザーがマウスではなく主にキーボードを使っていて、通常では表示されないキーボードインターフェイスを表示するようアプリケーションに要求していることを意味します。pvParam パラメータで、、1 個の BOOL 型変数へのポインタを指定します。この機能が有効になっている場合はこの変数に 0 以外の値(TRUE)が、無効になっている場合は 0(FALSE)が格納されます。
SPI_GETKEYBOARDSPEED キーボードのプロパティの「表示の間隔」を取得します。0(1 秒につき約 2.5 回のリピート入力)~31(1 秒につき約 30 回のリピート入力)の範囲で値が規定されています。実際のリピート入力回数はハードウェアによって異なり、線形のスケールとは最大 20% の違いがあります。pvParam パラメータで、1 個の DWORD 型変数へのポインタを指定します。関数から制御が返ると、この変数に、リピート回数を示す値が格納されます。
SPI_GETMOUSE マウスカーソルの移動速度と、アクセラレーションに関する 2 つのしきい値を取得します。pvParam パラメータで、3 つの要素からなる 1 つの整数型配列へのポインタを指定します。関数から制御が返ると、この配列に、これらの情報が格納されます。詳細については、 の説明を参照してください。
SPI_GETMOUSEHOVERHEIGHT Windows 98 と Windows NT4.0 以降: 関数が メッセージを生成するためにマウスカーソルがとどまっていなければならない範囲の高さを取得します。pvParam パラメータで、1 個の UINT 型変数へのポインタを指定します。関数から制御が返ると、この変数に、高さが格納されます。
SPI_GETMOUSEHOVERTIME Windows 98 と Windows NT 4.0 以降:TrackMouseEvent 関数が WM_MOUSEHOVER メッセージを生成するために、マウスカーソルがとどまっていなければならない時間をミリ秒(ms)単位で取得します。pvParam パラメータで、1 個の UNIT 型変数へのポインタを指定します。関数から制御が返ると、この変数に、時間が格納されます。
SPI_GETMOUSEHOVERWIDTH Windows 98 と Windows NT 4.0 以降: 関数が WM_MOUSEHOVER メッセージを生成するために、マウスカーソルがとどまっていなければならない範囲の幅を取得します。pvParam パラメータで、1 個の UINT 型変数へのポインタを指定します。関数から制御が返ると、この変数に、幅が格納されます。
SPI_GETMOUSESPEED Windows 98 と Windows 2000:マウスの現在の速度を取得します。マウスの速度は、マウスの移動距離に応じて、ポインタを移動させるべき距離を決定します。pvParame パラメータで、1 個の INT 型変数へのポインタを指定します。関数から制御が返ると、この変数に、1(最も遅い)~20(最も速い)の範囲の値が格納されます。既定の値は 10 です。エンドユーザーはコントロールパネルの「マウス」を使ってこの値を設定できますし、アプリケーションもこの関数で SPI_SETMOUSESPEED フラグを指定すると同様にこの値を設定できます。
SPI_GETMOUSETRAILS Windows 95/98:マウスポインタの軌跡を表示する機能が有効になっているかどうかを調べます。この機能が有効な場合、マウスの軌跡が短時間だけ表示され、すぐに消去されるので、マウスカーソルの移動状況を把握しやすくなります。
pvParam パラメータで、1 個の INT 型変数へのポインタを指定します。関数から制御が返ると、軌跡を表示しない場合はこの変数に 0 または 1 が、軌跡を表示する場合は 2 以上の値が格納されます。2 以上の値は、描画される軌跡の数を示します。uiParam パラメータは使いません。
Windows NT/2000:サポートされていません。
SPI_GETSNAPTODEFBUTTON Windows 98 と Windows NT 4.0 以降:マウスカーソルを既定のボタンへ自動的に移動させる機能が有効になっているかどうかを調べます。この機能が有効になっている場合、ダイアログボックス内の[OK]や[適用]のような既定のボタンへマウスカーソルが自動的に移動します。pvParam パラメータで、1 個の BOOL 型変数へのポインタを指定します。関数から制御が返ると、この機能が有効になっている場合はこの変数に 0 以外の値(TRUE)が、無効になっている場合は 0(FALSE)が格納されます。
SPI_GETWHEELSCROLLLINES Windows 98 と Windows NT 4.0 以降:マウスホイールを回転させたときにスクロールされる行数を取得します。pvParam パラメータで、1 個の UINT 型変数へのポインタを指定します。関数か��制御が返ると、この変数に、行数が格納されます。既定の値は 3 です。
SPI_SETBEEP 警告のビープ音をオンまたはオフにします。uiParam パラメータで、ビープ音をオンにする場合は 0 以外の値(TRUE)を、オフにする場合は 0(FALSE)を指定します。
SPI_SETDEFAULTINPUTLANG システムのシェルとアプリケーションが利用する、既定の入力言語を設定します。現在のシステム文字セットを使って表示できる言語を指定しなければなりません。pvParam パラメータで、既定の言語の入力ロケール識別子(キーボードレイアウト)を保持している 1 個の HKL 型変数を指定します。詳細については、MSDN ライブラリの「」を参照してください。
SPI_SETDOUBLECLICKTIME マウスのダブルクリック時間を設定します。uiParam パラメータで、設定するべき時間をミリ秒(ms)単位で指定します。ダブルクリック時間とは、マウスを 1 回目にクリックしてから 2 回目にクリックするまでの時間の最大値を規定するもので、この時間以内にマウスを 2 回クリックすると、ダブルクリックが行われたものと見なします。 関数を使って、ダブルクリック時間を設定することもできます。現在のダブルクリック時間を取得するには、 関数を使います。
SPI_SETDOUBLECLKHEIGHT ダブルクリック操作を行う際に、最初のクリックが発生したときのカーソル(マウスカーソル)の位置を基準として、2 回目のクリック位置の許容範囲の高さを設定します。uiParam パラメータで、設定するべき高さを指定します。
1 回目のクリックの後、この許容範囲内でもう一度マウスをクリックすると、ダブルクリックが行われたものと見なされます。
ダブルクリック範囲を表す長方形の高さを取得するには、SM_CYDOUBLECLK フラグを指定して GetSystemMetrics 関数を呼び出します。
SPI_SETDOUBLECLKWIDTH ダブルクリック操作を行う際に、最初のクリックが発生したときのカーソル(マウスカーソル)の位置を基準として、2 回目のクリック位置の許容範囲の幅を設定します。uiParam パラメータで、設定するべき幅を指定します。
1 回目のクリックの後、この許容範囲内でもう一度マウスをクリックすると、ダブルクリックが行われたものと見なされます。
ダブルクリック範囲を表す長方形の幅を取得するには、SM_CXDOUBLECLK フラグを指定して GetSystemMetrics 関数を呼び出します。
SPI_SETKEYBOARDCUES Windows 98 と Windows 2000:メニューアクセスキーを表す文字に必ず下線を付けるかどうかを設定します。pvParam パラメータで、1 個の BOOL 型変数を指定します。メニューアクセスキーに必ず下線を付ける場合はこの変数で 0 以外の値(TRUE)を、キーボードからメニューを呼び出したときのみ下線を付ける場合は 0(FALSE)を指定します。
SPI_SETKEYBOARDDELAY キーボードのプロパティの「表示までの待ち時間」を設定します。uiParam パラメータで、0、1、2、3 のいずれかの値を指定します。0 は最短の待ち時間(リピート入力を開始するまで約 250ms の待ち時間)、3 は最長の待ち時間(約 1 秒の待ち時間)を設定します。各値に対応する実際の待ち時間は、ハードウェアによって異なることがあります。
SPI_SETKEYBOARDPREF Windows 95/98 と Windows 2000:ユーザー補助の「アプリケーションにキーボードのヘルプを追加する」(または「プログラムで追加のキーボードヘルプを表示する」)を設定します。ユーザーがマウスではなく主にキーボードを使っていて、通常は表示されていないキーボードのヘルプを追加するようアプリケーションに要求している場合は uiParam パラメータで 0 以外の値(TRUE)を、追加しない場合は 0 (FALSE)を指定します。
SPI_SETKEYBOARDSPEED キーボードのプロパティの「表示の間隔」を設定します。uiParam パラメータで、0(1 秒につき約 2.5 回のリピート入力)~31(1 秒につき約 30 回のリピート入力)の範囲で値を指定します。実際のリピート入力回数はハードウェアによって異なり、線形のスケールとは最大 20% の違いがあります。uiParam パラメータで 31 より大きい値を指定すると、リピート入力回数は 31 に設定されます。
SPI_SETLANGTOGGLE キーボードのプロパティの「言語の切り替え」を設定します。uiParam パラメータと pvParam パラメータを使いません。このフラグを使って値を設定した場合、この関数はレジストリをもう一度読み取って、「キーボードのプロパティ」の「言語」タブの表示を自動的に変更します。この関数でこのフラグを指定する前に、レジストリの適切なレジストリエントリを作成しておかなければなりません。レジストリエントリは、\HKEY_CURRENT_USER\keyboard layout\toggle で指定します。有効な値は、左 ALT+SHIFT キーを意味する 1、CTRL+SHIFT キーを意味する 2、何も設定しないことを意味する 3 のいずれかです。
SPI_SETMOUSE マウスカーソルの移動速度と、アクセラレーションに関する 2 つのしきい値を設定します。pvParam パラメータで、3 つの要素からなる 1 つの整数型配列へのポインタを指定します。この配列で、これらの情報を指定しておきます。詳細については、 の説明を参照してください。
SPI_SETMOUSEBUTTONSWAP 左右のマウスボタンの機能を交換するかどうかを設定します。ボタンの機能を交換する場合は uiParam パラメータで 0 以外の値(TRUE)を、交換しない場合は 0(FALSE)を指定します。
SPI_SETMOUSEHOVERHEIGHT Windows 98 と Windows NT 4.0 以降: 関数が WM_MOUSEHOVER メッセージを生成するために、マウスカーソルがとどまっていなければならない範囲の高さをピクセル単位で設定します。uiParam パラメータで、設定するべき新しい高さを指定します。
SPI_SETMOUSEHOVERTIME Windows 98 と Windows NT 4.0 以降:TrackMouseEvent 関数が WM_MOUSEHOVER メッセージを生成するために、マウスカーソルがとどまっていなければならない時間をミリ秒(ms)単位で設定します。TrackMouseEvent 関数の dwHoverTime パラメータで HOVER_DEFAULT を指定した場合にのみ、このフラグが使われます。uiParam パラメータで、設定するべき新しい時間を指定します。
SPI_SETMOUSEHOVERWIDTH Windows 98 と Windows NT 4.0 以降:TrackMouseEvent 関数が WM_MOUSEHOVER メッセージを生成するために、マウスカーソルがとどまっていなければならない範囲の幅をピクセル単位で設定します。uiParam パラメータで、設定するべき新しい幅を指定します。
SPI_SETMOUSESPEED Windows 98 と Windows 2000:マウスの現在の速度を設定します。pvParame パラメータで、1(最も遅い)~20(最も速い)の範囲の値を保持している、1 個の整数を指定します。既定の値は 10 です。このフラグは主に、コントロールパネルの「マウス」を使って速度を設定するために使われます。
SPI_SETMOUSETRAILS Windows 95/98:マウスポインタの軌跡の表示を有効または無効にします。この機能が有効な場合、マウスの軌跡が短時間だけ表示され、すぐに消去されるので、マウスカーソルの移動状況を把握しやすくなります。
軌跡を表示しない場合は uiParam パラメータで 0 または 1 を、軌跡を表示する場合は描画するべき軌跡の数を意味する 2 以上の整数を指定します。
Windows NT/2000:サポートされていません。
SPI_SETSNAPTODEFBUTTON Windows 98 と Windows NT 4.0 以降:マウスカーソルを既定のボタンへ自動的に移動させる機能を有効または無効にします。この機能が有効になっている場合、ダイアログボックス内の[OK]や[適用]のような既定のボタンへマウスカーソルが自動的に移動します。この機能を有効にする場合は uiParam パラメータで 0 以外の値(TRUE)を、無効にする場合は 0(FALSE)を指定します。アプリケーションはダイアログボックスを表示する際に、 関数を使うべきです。その結果、ダイアログマネージャはマウスカーソルを正しい場所に配置できます。
SPI_SETWHEELSCROLLLINES Windows 98 と Windows NT 4.0 以降:マウスホイールを回転させたときにスクロールされる行数を設定します。uiParam パラメータで、設定するべき行数を指定します。
この行数は、修飾キーを使わずにマウスホイールを回転させた場合にスクロールさせるべき行数の推奨値を意味します。0 を指定した場合、ホイールを回転させてもスクロールを行いません。表示可能な行数より大きい数値を指定した場合や、特に WHEEL_PAGESCSOLL(Winuser.h 内で UINT_MAX と等しい値として定義されていますが、Limits.h 内で UINT_MAX は 0xffffffff、つまり 18,446,744,073,709,551,615;1,844 京;1,844 兆の 1 万倍と定義されています)を指定した場合、スクロール操作は、スクロールバーのページアップ領域またはページダウン領域を 1 回クリックした場合と同じ動作になります。
メニューのフラグは、次のとおりです。
メニューのフラグ 意味
SPI_GETMENUDROPALIGNMENT メニューバーの項目に対して、ドップダウンメニューに左寄せと右寄せのどちらを適用するかを示す値を取得します。pvParam パラメータでは、1 個の BOOL 型変数へのポインタを指定します。関数から制御が返ると、この変数に、右寄せの場合は 0 以外の値(TRUE)が、左寄せの場合は 0(FALSE)が格納されます。
SPI_GETMENUFADE Windows 2000:メニューのフェードアニメーションが有効になっているかどうかを調べます。pvParam パラメータで、1 個の BOOL 型変数へのポインタを指定します。関数から制御が返ると、この変数に、フェードアニメーションが有効になっている場合は 0 以外の値(TRUE)、無効になっている場合は 0(FALSE)が格納されます。フェードアニメーションが無効になっている場合、メニューはスライドアニメーション形式で表示されます。メニューのアニメーション表示が有効になっていない場合、このフラグは無視されます。メニューのアニメーション表示を設定するには、この関数の SPI_SETMENUANIMATION フラグを使います。詳細については、MSDN ライブラリの 関数の説明を参照してください。
SPI_GETMENUSHOWDELAY Windows 95/98 と Windows NT 4.0 以降:マウスカーソルをサブメニューの項目に合わせた後、何 ms 後にショートカットメニューを表示する設定になっているのか調べます。pvParam パラメータで、1 個の DWORD 型変数へのポインタを指定します。関数から制御が返ると、この変数に、待ち時間が格納されます。
SPI_SETMENUDROPALIGNMENT メニューバーの項目に対して、ドロップダウンメニューを右寄せするかどうかを設定します。右寄せを適用する場合は uiParam パラメータで TRUE を、左寄せを適用する場合は FALSE を指定します。
SPI_SETMENUFADE Windows 2000:メニューのフェードアニメーションを有効または無効にします。メニューのフェードアニメーションを有効にする場合は pvParam パラメータで 0 以外の値(TRUE)を、無効にする場合は 0(FALSE)を指定します。フェードアニメーションが無効になっている場合、メニューはスライドアニメーション形式で表示されます。メニューのフェードアニメーションが有効になるのは、色深度が 256 色(8 ビット)以上の場合だけです。共に SET_MENUANIMATION を指定してメニューのアニメーション表示を有効にしておかない限り、SPI_SETMENUFADE フラグは無視されます。詳細については、MSDN ライブラリの 関数の説明を参照してください。
SPI_SETMENUSHOWDELAY Windows 95/98 と Windows NT 4.0 以降:マウスカーソルをサブメニューの項目に合わせた後、何 ms 後にショートカットメニューを表示するかを設定します。pvParam パラメータで、新しい待ち時間をミリ秒(ms)単位で指定します。
電力管理のフラグは、次のとおりです。コントロールパネルでは[電源管理]と表記されています。
電力管理のフラグ 意味
SPI_GETLOWPOWERACTIVE スクリーンの低消費電力モードが有効になっているかどうかを調べます。pvParam パラメータで、1 個の BOOL 型変数へのポインタを指定します。関数から制御が返ると、この変数に、低消費電力モードが有効な場合は 0 以外の値(TRUE)が、無効な場合は 0(FALSE)が格納されます。
Windows 98:16 ビットアプリケーションと 32 ビットアプリケーションの両方が、このフラグをサポートしています。
Windows 95:16 ビットアプリケーションだけが、このフラグをサポートしています。
Windows NT/2000:Windows 2000 以降では、32 ビットアプリケーションがこのフラグをサポートしています。16 ビットアプリケーションは、このフラグをサポートしていません。
SPI_GETLOWPOWERTIMEOUT スクリーンの低消費電力モードのタイムアウト値(何も操作が行われていない状況で、低消費電力モードを有効にするまでの待ち時間)を取得します。pvParam パラメータで、1 個の INT 型変数へのポインタを指定します。関数から制御が返ると、この変数に、タイムアウト値が秒単位で格納されます。
Windows 98:16 ビットアプリケーションと 32 ビットアプリケーションの両方が、このフラグをサポートしています。
Windows 95:16 ビットアプリケーションだけが、このフラグをサポートしています。
Windows NT/2000:Windows 2000 以降では、32 ビットアプリケーションがこのフラグをサポートしています。16 ビットアプリケーションは、このフラグをサポートしていません。
SPI_GETPOWEROFFACTIVE スクリーンの電力停止モードが有効になっているかどうかを調べます。pvParam パラメータで、1 個の BOOL 型変数へのポインタを指定します。関数から制御が返ると、この変数に、電力停止モードが有効な場合は 0 以外の値(TRUE)が、無効な場合は 0(FALSE)が格納されます。
Windows 98:16 ビットアプリケーションと 32 ビットアプリケーションの両方が、このフラグをサポートしています。
Windows 95:16 ビットアプリケーションだけが、このフラグをサポートしています。
Windows NT/2000:Windows 2000 以降では、32 ビットアプリケーションがこのフラグをサポートしています。16 ビットアプリケーションは、このフラグをサポートしていません。
SPI_GETPOWEROFFTIMEOUT スクリーンの電力停止モードのタイムアウト値(何も操作が行われていない状況で、電力停止モードを有効にするまでの待ち時間)を取得します。pvParam パラメータで、1 個の INT 型変数へのポインタを指定します。関数から制御が返ると、この変数に、タイムアウト値が秒単位で格納されます。
Windows 98:16 ビットアプリケーションと 32 ビットアプリケーションの両方が、このフラグをサポートしています。
Windows 95:16 ビットアプリケーションだけが、このフラグをサポートしています。
Windows NT/2000:Windows 2000 以降では、32 ビットアプリケーションがこのフラグをサポートしています。16 ビットアプリケーションは、このフラグをサポートしていません。
SPI_SETLOWPOWERACTIVE スクリーンの低消費電力モードを有効または無効にします。uiParam パラメータで、低消費電力モードを有効にする場合は 1 を、無効にする場合は 0 を指定します。pvParam パラメータで、NULL を指定します。
Windows 98:16 ビットアプリケーションと 32 ビットアプリケーションの両方が、このフラグをサポートしています。
Windows 95:16 ビットアプリケーションだけが、このフラグをサポートしています。
Windows NT/2000:Windows 2000 以降では、32 ビットアプリケーションがこのフラグをサポートしています。16 ビットアプリケーションは、このフラグをサポートしていません。
SPI_SETLOWPOWERTIMEOUT スクリーンの低消費電力モードのタイムアウト値(何も操作が行われていない状況で、低消費電力モードを有効にするまでの待ち時間)を設定します。uiParam パラメータで、タイムアウト値を秒単位で指定します。pvParam パラメータで、NULL を指定します。
Windows 98:16 ビットアプリケーションと 32 ビットアプリケーションの両方が、このフラグをサポートしています。
Windows 95:16 ビットアプリケーションだけが、このフラグをサポートしています。
Windows NT/2000:Windows 2000 以降では、32 ビットアプリケーションがこのフラグをサポートしています。16 ビットアプリケーションは、このフラグをサポートしていません。
SPI_SETPOWEROFFACTIVE スクリーンの電力停止モードを有効または無効にします。uiParam パラメータで、電力停止モードを有効にする場合は 1 を、無効にする場合は 0 を指定します。pvParam パラメータで、NULL を指定します。
Windows 98:16 ビットアプリケーションと 32 ビットアプリケーションの両方が、このフラグをサポートしています。
Windows 95:16 ビットアプリケーションだけが、このフラグをサポートしています。
Windows NT/2000:Windows 2000 以降では、32 ビットアプリケーションがこのフラグをサポートしています。16 ビットアプリケーションは、このフラグをサポートしていません。
SPI_SETPOWEROFFTIMEOUT スクリーンの電力停止モードの新しいタイムアウト値(何も操作が行われていない状況で、電力停止モードを有効にするまでの待ち時間)を設定します。uiParam パラメータで、新しいタイムアウト値を秒単位で設定します。pvParam パラメータで、NULL を指定します。
Windows 98:16 ビットアプリケーションと 32 ビットアプリケーションの両方が、このフラグをサポートしています。
Windows 95:16 ビットアプリケーションだけが、このフラグをサポートしています。
Windows NT/2000:Windows 2000 以降では、32 ビットアプリケーションがこのフラグをサポートしています。16 ビットアプリケーションは、このフラグをサポートしていません。
スクリーンセーバーのフラグは、次のとおりです。
スクリーンセーバーのフラグ 意味
SPI_GETSCREENSAVEACTIVE スクリーンセーバーが有効になっているかどうかを調べます。pvParam パラメータで、1 個の BOOL 型変数へのポインタを指定します。関数から制御が返ると、この変数に、スクリーンセーバーが有効になっている場合は 0 以外の値(TRUE)が、それ以外の場合は 0(FALSE)が格納されます。
SPI_GETSCREENSAVERRUNNING Windows 98 と Windows 2000:呼び出し側プロセスのウィンドウステーションで、スクリーンセーバーが現在動作しているかどうかを調べます。pvParam パラメータで、1 個の BOOL 型変数へのポインタを指定します。関数から制御が返ると、この変数に、スクリーンセーバーが現在動作している場合は 0 以外の値(TRUE)、それ以外の場合は 0(FALSE)が格納されます。スクリーンセーバーを動作させることができるのが、対話型のウィンドウステーションである "Winsta0" のみであることに注意してください。
SPI_GETSCREENSAVETIMEOUT スクリーンセーバーのタイムアウト時間(何も操作が行われていない状況で、スクリーンセーバーを実行するまでの待ち時間)を取得します。pvParam パラメータで、1 個の整数型変数へのポインタを指定します。関数から制御が返ると、この変数に、待ち時間が秒単位で格納されます。
SPI_SETSCREENSAVEACTIVE スクリーンセーバーを有効または無効にします。uiParam パラメータで、スクリーンセーバー有効にする場合は 0 以外の値(TRUE)を、無効にする場合は 0(FALSE)を指定します。
SPI_SETSCREENSAVERRUNNING Windows 95/98:内部で使われます。アプリケーションは、このフラグを使うべきではありません。
SPI_SETSCREENSAVETIMEOUT スクリーンセーバーのタイムアウト時間(何も操作が行われていない状況で、スクリーンセーバーを実行するまでの待ち時間)を設定します。uiParam パラメータで、設定するべき新しい待ち時間を秒単位で指定します。
UI 効果のパラメータは、次のとおりです。SPI_SETUIEFFECTS フラグを使うと、UI 効果のすべてのフラグを一度に有効または無効にできます。この表は、UI 効果に関係するすべてのフラグを示しています。
UI 効果のフラグ 意味
SPI_GETCOMBOBOXANIMATION Windows 98 と Windows 2000:コンボボックスのスライドオープン効果(コンボボックスを開く際に、小さな点から徐々に拡大する代わりに、スライドを横へ移動する形式で表示する)が有効になっているかどうかを調べます。pvParam パラメータで、1 個の BOOL 型変数を指定します。関数から制御が返ると、この変数に、この効果が有効になっている場合は TRUE が、無効になっている場合は FALSE が格納されます。
SPI_GETCURSORSHADOW Windows 2000:カーソルの周りに影を表示する設定になっているかどうかを調べます。pvParam パラメータで、1 個の BOOL 型変数を指定します。関数から制御が返ると、この変数に、影付き効果が有効になっている場合は 0 以外の値(TRUE)が、無効になっている場合は 0(FALSE)が格納されます。システムの色深度が 256 色(8 ビット)以上である場合にのみ、この効果が表示されます。
SPI_GETGRADIENTCAPTIONS Windows 98 と Windows 2000:ウィンドウのタイトルバーでグラデーション効果が有効になっているかどうかを調べます。pvParam パラメータで、1 個の BOOL 型変数を指定します。関数から制御が返ると、この変数に、この効果が有効になっている場合は 0 以外の値(TRUE)が、無効になっている場合は 0(FALSE)が格納されます。グラデーション効果の詳細については、GetSysColor 関数を参照してください。
SPI_GETHOTTRACKING Windows 98 と Windows 2000:メニュー名やメニューバーのようなユーザーインターフェイス要素のホットトラッキングが有効になっているかどうかを調べます。pvParam パラメータで、1 個の BOOL 型変数を指定します。関数から制御が返ると、この変数に、この機能が有効になっている場合は 0 以外の値(TRUE)が、無効になっている場合は 0(FALSE)が格納されます。
ホットトラッキングとは、カーソルを特定の項目に重ねたときに、その項目が強調表示されるだけで、選択されないことを意味します。アプリケーションのユーザーインターフェイスでホットトラッキングを使うかどうか判断する目的で、このフラグを問い合わせることができます。
SPI_GETLISTBOXSMOOTHSCROLLING Windows 98 と Windows 2000:リストボックスのスムーズスクロール効果が有効になっているかどうかを調べます。pvParam パラメータで、1 個の BOOL 型変数を指定します。関数から制御が返ると、この変数に、この効果が有効になっている場合は 0 以外の値(TRUE)が、無効になっている場合は 0(FALSE)が格納されます。
SPI_GETMENUANIMATION Windows 98 と Windows 2000:メニューのアニメーション機能が有効になっているかどうかを調べます。これはメニューのアニメーション効果に関するマスタフラグであり、他のアニメーション効果を有効にするには、このフラグを有効にしておかなければなりません。pvParam パラメータで、1 個の BOOL 型変数を指定します。関数から制御が返ると、この変数に、アニメーション機能が有効になっている場合は 0 以外の値(TRUE)が、無効になっている場合は 0(FALSE)が格納されます。
Windows 2000:アニメーション機能が有効になっている場合、SPI_GETMENUFADE フラグは、メニューを表示する際にフェードアニメーションとスライドアニメーションのどちらが使われているかを表します。
SPI_GETMENUUNDERLINES Windows 98 と Windows 2000:SPI_GETKEYBOARDCUES と同じことを意味します
SPI_GETSELECTIONFADE Windows 2000:選択項目のフェード効果が有効になっているかどうかを調べます。pvParam パラメータで、1 個の BOOL 型変数を指定します。関数から制御が返ると、この変数に、この効果が有効になっている場合は 0 以外の値(TRUE)が、無効になっている場合は 0(FALSE)が格納されます。
選択項目のフェード効果を有効にすると、ユーザーがメニュー項目を選択したときに、メニューが消えた後、ほんの短い間だけそのメニュー項目が画面に残り、フェードアウトしてゆきます。
SPI_GETTOOLTIPANIMATION Windows 2000:ツールチップ(チップヘルプ)アニメーションが有効になっているかどうかを調べます。pvParam パラメータで、1 個の BOOL 型変数を指定します。関数から制御が返ると、この変数に、この効果が有効になっている場合は 0 以外の値(TRUE)が、無効になっている場合は 0(FALSE)が格納されます。ツールチップアニメーションが有効になっている場合、SPI_GETTOOLTIPFADE フラグは、ツールチップを表示する際にフェードアニメーションとスライドアニメーションのどちらが使われているかを表します。
SPI_GETTOOLTIPFADE Windows 2000:SPI_SETTOOLTIPANIMATION フラグが有効になっている場合、SPI_GETTOOLTIPFADE フラグは、ツールチップアニメーションを表示する際にフェード効果とスライド効果のどちらが使われているかを表します。pvParam パラメータで、1 個の BOOL 型変数を指定します。関数から制御が返ると、この変数に、フェードアニメーションが有効になっている場合は 0 以外の値(TRUE)が、スライドアニメーションが有効になっている場合は 0(FALSE)が格納されます。詳細については、MSDN ライブラリの 関数の説明を参照してください。
SPI_GETUIEFFECTS Windows 2000:すべての UI 効果が有効になっているかどうかを調べます。pvParam パラメータで、1 個の BOOL 型変数を指定します。関数から制御が返ると、この変数に、すべての UI 効果が有効になっている場合は 0 以外の値(TRUE)が、無効になっている場合は 0(FALSE)が格納されます。この表には、UI 効果に関連するすべてのフラグが掲載されています。
SPI_SETCOMBOBOXANIMATION Windows 98 と Windows 2000:コンボボックスのスライドオープン効果(コンボボックスを開く際に、小さな点から徐々に拡大する代わりに、スライドを横へ移動する形式で表示する)を有効または無効にします。pvParam パラメータで、スライドオープン効果を有効にする場合は 0 以外の値(TRUE)を、無効にする場合は 0(FALSE)を指定します。
SPI_SETCURSORSHADOW Windows 2000:カーソルの周りに影を表示する効果を有効または無効にします。pvParam パラメータで、影付き効果を有効にする場合は 0 以外の値(TRUE)を、無効にする場合は 0(FALSE)を指定します。システムの色深度が 256 色(8 ビット)以上である場合にのみ、この効果が表示されます。
SPI_SETGRADIENTCAPTIONS Windows 98 と Windows 2000:ウィンドウのタイトルバーでグラデーション効果を有効または無効にします。pvParam パラメータで、グラデーション効果を有効にする場合は 0 以外の値(TRUE)を、無効にする場合は 0(FALSE)を指定します。グラデーション効果を利用できるのは、システムの色深度が 256 色(8 ビット)以上である場合のみです。グラデーション効果の詳細については、GetSysColor 関数を参照してください。
SPI_SETHOTTRACKING Windows 98 と Windows 2000:メニュー名やメニューバーのようなユーザーインターフェイス要素のホットトラッキングを有効または無効にします。pvParam パラメータで、ホットトラッキングを有効にする場合は 0 以外の値(TRUE)を、無効にする場合は 0(FALSE)を指定します。
ホットトラッキングとは、カーソルを特定の項目に重ねたときに、その項目が強調表示されるだけで、選択されないことを意味します。
SPI_SETLISTBOXSMOOTHSCROLLING Windows 98 と Windows 2000:リストボックスのスムーズスクロール効果を有効または無効にします。pvParam パラメータで、スムーズスクロール効果を有効にする場合は 0 以外の値(TRUE)を、無効にする場合は 0(FALSE)を指定します。
SPI_SETMENUANIMATION Windows 98 と Windows 2000:メニューのアニメーション機能を有効または無効にします。これはメニューのアニメーション効果に関するマスタフラグであり、他のアニメーション効果を有効にするには、このフラグを有効にしておかなければなりません。pvParam パラメータで、メニューのアニメーション効果を有効にする場合は 0 以外の値(TRUE)を、無効にする場合は 0(FALSE)を指定します。
Windows 2000:アニメーション機能が有効になっている場合、SPI_GETMENUFADE フラグは、メニューを表示する際にフェードアニメーションとスライドアニメーションのどちらが使われているかを表します。
SPI_SETMENUUNDERLINES Windows 98 と Windows 2000:SPI_SETKEYBOARDCUES と同じことを意味します
SPI_SETSELECTIONFADE Windows 2000:選択項目のフェード効果を有効または無効にします。pvParam パラメータで、フェード効果を有効にする場合は 0 以外の値(TRUE)を、無効にする場合は 0(FALSE)を指定します。
選択項目のフェード効果を有効にすると、ユーザーがメニュー項目を選択したときに、メニューが消えた後、ほんの短い間だけそのメニュー項目が画面に残り、フェードアウトしてゆきます。選択項目のフェード効果を利用できるのは、システムの色深度が 256 色(8 ビット)以上である場合のみです。
SPI_SETTOOLTIPANIMATION Windows 2000:ツールチップ(チップヘルプ)アニメーションを有効または無効にします。pvParam パラメータで、ツールチップのアニメーションを有効にする場合は 0 以外の
3番の方が回答している、SystemParametersInfo()に関してMSDNに掲載されている内容をコピぺして頂いたんですね。
行為はありがたいですが、MSDNを直接読んだ方が読みやすいですし、コピペして頂いても質問者(わたし)/回答者(あなた)にメリットは無いかと思います。
ほお、この方法が一番やりたいことに近い気がします。
試してみます。