<Return[C]><Top>

ChangeDisplaySettingsEx

Declare Function Api_ChangeDisplaySettingsEx& Lib "user32" Alias "ChangeDisplaySettingsExA" (lpszDeviceName As Any, lpDevMode As Any, ByVal hWnd&, ByVal dwFlags&, lParam As Any)

Declare Function ChangeDisplaySettingsEx Lib "user32" Alias "ChangeDisplaySettingsExA" (lpszDeviceName As Any, lpDevMode As Any, ByVal hWnd As Long, ByVal dwFlags As Long, lParam As Any) As Long

lpszDeviceName パラメータで指定されたディスプレイデバイスの設定を、lpDevMode パラメータで指定されたグラフィックモードに変更する。

パラメータ
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

設定の変更に成功した。