パラメータ
lpDevMode
変更するグラフィックスモードを記述する DEVMODE 構造体へのポインタを指定する。
dmSize メンバは、DEVMODE 構造体のサイズ(バイト単位)に初期化する必要がある。
DEVMODE 構造体では、次のフィールドを使う。
メンバ
|
意味
|
DmBitsPerPel
|
1 ピクセルあたりのビット数(bpp) |
DmPelsWidth |
ピクセルの幅 |
DmPelsHeight
|
ピクセルの高さ |
DmDisplayFlags
|
モードフラグ |
DmDisplayFrequency
|
モードの周波数 |
DEVMODE 構造体では前記のメンバ以外にも、dmFields
メンバに適切なフラグをセットする必要がる。
これらのフラグにより、ディスプレイ設定の変更に使う DEVMODE 構造体のメンバを指定する。
dmFields に適切なビットがセットされていないと、ディスプレイ設定は変更されない。
次のフラグから、1 つ以上選択してセットする。
フラグ
|
意味
|
DM_BITSPERPEL |
dmBitsPerPel の値を 使う。 |
DM_PELSWIDTH |
dmPelsWidth の値を 使う。 |
DM_PELSHEIGHT |
dmPelsHeight の値を使う。 |
DM_DISPLAYFLAGS |
dmDisplayFlags の値を 使う。 |
DM_DISPLAYFREQUENCY |
dmDisplayFrequency
の値を使う。 |
LpDevMode パラメータが NULL
の場合、現在レジストリにあるすべての値がディスプレイ設定に使われる。
動的モードに変更した後で既定モードに戻す最も簡単な方法は、lpDevMode パラメータに NULL を、
dwFlag パラメータに 0 を指定する方法。
dwflags
グラフィックスモードの変更方法を指定する。ほとんどの場合、次のいずれかの値を指定する。
フラグ
|
意味
|
0 |
現在の画面のグラフィックスモードを動的に変更する。 |
CDS_UPDATEREGISTRY |
現在の画面のグラフィックスモードを動的に変更し、レジストリへの登録を更新する。 |
|
モード情報は、USER
プロファイルに格納される。 |
CDS_TEST |
要求されたグラフィックスモードが設定できるかどうかをシステムでテストする。 |
CDS_FULLSCREEN |
このモードは、一時的なモード。Windows
NT では、別のデスクトップとの間で変更すると、このモードを |
|
リセットできなくなる。 |
CDS_GLOBAL |
コンピュータ上の全ユーザーに設定を適用するために、設定をグローバルな設定領域に保存する。 |
|
このフラグをセットしないと、特定のユーザーに対する設定だけが変更さる。 |
|
このフラグは、CDS_UPDATEREGISTRY フラグと併用した場合にだけ有効になる。 |
CDS_SET_PRIMARY |
このデバイスは、一次デバイスになる。 |
CDS_RESET |
要求された設定が現在の設定と同じ場合でも、設定が変更される。 |
CDS_SETRECT |
すべてのアプリケーションに送信する
WM_DISPLAYCHANGE メッセージに指定されたlParam メッセージ |
|
パラメータは、RECT 構造体へのポインタである必要がある。 |
|
この構造体は、マルチスクリーン環境でのディスプレイデバイスの位置を示す。 |
|
lParam パラメータに NULL
を指定すると、ディスプレイデバイスはマルチスクリーン環境から切り離される。 |
CDS_NORESET |
設定がレジストリに保存されるが、適用されない。このフラグは、CDS_UPDATEREGISTRY フラグと併用 |
|
した場合だけに有効にな る。 |
|
CDS_UPDATEREGISTRY
が指定されていて、グラフィックスモードを動的に変更できる場合、情報 はレジ |
|
ストリに格納され、DISP_CHANGE_SUCCESSFUL が返る。グラフィックスモードを動的に変更できない |
|
場合、情報はレジストリに格納され、DISP_CHANGE_RESTART が返る。 |
Windows
NT:情報をレジストリに格納できない場合、グラフィックスモードは変更されず、DISP_CHANGE_NOTUPDATED が返る。
CDS_TEST
を指定すると、システムでグラフィックスモードを変更せずに、実際に有効なグラフィックスモードをアプリケーションで判断する
ことができる。
戻り値
戻り値は、次のいずれかになる。
値
|
意味
|
DISP_CHANGE_SUCCESSFUL |
設定の変更が成功。 |
DISP_CHANGE_RESTART |
グラフィックスモードを有効にするには、コンピュータを再起動する必要がある。 |
DISP_CHANGE_BADFLAGS |
渡されたフラグセットが無効。
|
DISP_CHANGE_BADPARAM |
渡されたパラメータが無効。パラメータに無効なフラグまたはフラグの組み合わせが含まれている可能 |
|
性がある。 |
DISP_CHANGE_FAILED |
ディスプレイドライバが、指定したグラフィックスモードの設定に失敗した。 |
DISP_CHANGE_BADMODE |
このグラフィックスモードはサポートされていない。
|
DISP_CHANGE_NOTUPDATED |
Windows NT
のみ:レジストリに設定を書き込めない。 |
|