パラメータ
lpszDeviceName
ディスプレイデバイスを表す NULL で終わる文字列へのポインタを指定する。
関数は、このディスプレイデバイスのグラフィックモードに関する情報を取得する。
これらのディスプレイデバイスに関連付けられる名前の詳細については、EnumDisplayDevices 関数を参照のこと。
lpszDeviceName パラメータには、NULL を指定することができる。NULL
は、既定のディスプレイデバイスを指定する。
lpDevMode
切り替えるグラフィックモードを表す DEVMODE 構造体へのポインタを指定する。
dmSize メンバは、DEVMODE 構造体のバイト単位のサイズに初期化する。
dmDriverExtra メンバは、DEVMODE 構造体に従って、プライベートドライバデータのバイト数に初期化する。
DEVMODE 構造体の次のメンバを使うことがでる。
メンバ
|
意味
|
dmBitsPerPel |
ピクセルあたりのビット数 |
dmPelsWidth |
ピクセル幅 |
dmPelsHeight |
ピクセル高 |
dmDisplayFlags |
モードフラグ |
dmDisplayFrequency |
モード周波数 |
dmPosition |
Windows 98、Windows
2000:マルチモニタ構成でのデバイス位置 |
これらの DEVMODE 構造体の 1 つ以上のメンバに値を設定するだけでなく、dmFields
メンバにも適切なフラグをセットする。
このフラグは、DEVMODE 構造体のどのメンバを使ってディスプレイの設定変更を行うかを示す。
dmFields メンバに適切なビットがセットされていない場合、ディスプレイ設定は変更されない。
次のフラグのうち 1 つ以上をセットする。
フラグ
|
意味
|
DM_BITSPERPEL |
dmBitsPerPel メンバの値を使う。 |
DM_PELSWIDTH |
dmPelsWidth メンバの値を使う。 |
DM_PELSHEIGHT |
dmPelsHeight メンバの値を使う。
|
DM_DISPLAYFLAGS |
dmDisplayFlags メンバの値を使う。 |
DM_DISPLAYFREQUENCY |
dmDisplayFrequency
メンバの値を使う。 |
DM_POSITION |
Windows 98、Windows
2000:dmPosition メンバの値を使う |
lpDevMode パラメータに NULL を指定すると、現在レジストリにあるすべての値がディスプレイ設定に使われる。
動的なモード変更後に、既定のモードに戻すには、lpDevMode パラメータに NULL を渡し、dwFlags パラメータに 0 を渡すのが
最も簡単な方法。
hwnd
NULL を指定。
dwflags
グラフィックモードの変更方法を指定する。次のフラグのいずれかを指定する。
フラグ
|
意味
|
0 |
現在のスクリーンのグラフィックモードを動的に変更する。 |
CDS_FULLSCREEN |
このモードは、実際に使われる場合、一時的なモードとして使われる。 |
|
Windows
NT/2000:ほかのディスクトップに切り替えたり、ほかのディスクトップから戻っても、このモードは |
|
リセットされない。 |
CDS_GLOBAL |
設定はグローバル設定エリアに保存されるため、そのマシン上の全ユーザーに適用される。 |
|
設定がグローバル設定エリアに保存されない場合、そのユーザー設定だけが修正される。 |
|
このフラグは
CDS_UPDATEREGISTRY フラグとともに指定されている場合にのみ有効。 |
CDS_NORESET |
この設定はレジストリに保存されるが、有効にはならない。 |
|
このフラグは
CDS_UPDATEREGISTRY フラグとともに指定されている場合にのみ有効。 |
CDS_RESET |
要求された設定が現在の設定と同じであっても、設定を変更する。 |
CDS_SET_PRIMARY |
このデバイスはプライマリデバイスになる。 |
CDS_TEST |
システムは要求されたグラフィックモードを設定できるかどうかをテストする。 |
CDS_UPDATEREGISTRY |
現在のスクリーンのグラフィックモードは動的に変更され、レジストリ内のグラフィックモードは更新される。 |
|
モード情報は USER
プロファイルに格納される。 |
CDS_VIDEOPARAMETERS |
Windows
NT/2000:この値がセットされているときは、lParam パラメータは、 |
|
_VIDEOPARAMETERS 構造体を指す。 |
CDS_TEST を指定すると、システムのグラフィックモードを変更せずに現在有効なグラフィックモードを調べることがでる。
CDS_UPDATEREGISTRY
が指定されていて、グラフィックモードを動的に変更できる場合、情報はレジストリに格納され
DISP_CHANGE_SUCCESSFUL が返る。グラフィックモードを動的に変更できない場合は、情報はレジストリに格納されて
DISP_CHANGE_RESTART が返る。
Windows NT/2000:CDS_UPDATEREGISTRY
が指定されていて、情報をレジストリに格納できない場合、グラフィックモードは
変更されず、DISP_CHANGE_NOTUPDATED が返る。
lParam
Windows NT/2000:dwFlags パラメータが CDS_VIDEOPARAMETERS
の場合、このパラメータは VIDEOPARAMETERS 構造体
へのポインタを指定する。それ以外の場合は、NULL を指定する。
戻り値
次の値のいずれかが返る。
値
|
意味
|
DISP_CHANGE_BADESC |
Windows NT/2000:ドライバがこの機能をサポートしていないか、またはドライバがエラーを返した。 |
DISP_CHANGE_BADFLAGS |
無効なフラグが渡された。 |
DISP_CHANGE_BADMODE |
グラフィックモードはサポートされてい ない。 |
DISP_CHANGE_BADPARAM |
無効なパラメータが渡された。これには、無効なフラグまたはフラグの組み合わせも含まれる。 |
DISP_CHANGE_FAILED |
ディスプレイドライバは指定されたグラフィックモードへの変更に失敗した。 |
DISP_CHANGE_NOTUPDATED |
Windows NT/2000:設定をレジストリに書き込むことができない。 |
DISP_CHANGE_RESTART |
グラフィックモードを有効にするには、コンピュータを再起動しなければならない。 |
DISP_CHANGE_SUCCESSFUL |
設定の変更に成功した。 |
|