<Return[C]><Top>

ChangeDisplaySettings

Declare Function Api_ChangeDisplaySettings& Lib "user32" Alias "ChangeDisplaySettingsA" (lpDevMode As DEVMODE, ByValdwFlags&)

Declare Function ChangeDisplaySettings Lib "user32" Alias "ChangeDisplaySettingsA" (lpDevMode As Any, ByVal dwFlags As Long) As Long

ディスプレイ設定を、指定したグラフィックスモードに変更する。

パラメータ
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 のみ:レジストリに設定を書き込めない。