ChangeDisplaySettingsA 関数 (winuser.h)
ChangeDisplaySettings 関数は、既定のディスプレイ デバイスの設定を指定されたグラフィックス モードに変更します。
指定したディスプレイ デバイスの設定を変更するには、ChangeDisplaySettingsEx 関数を使用します。
構文
LONG ChangeDisplaySettingsA(
[in] DEVMODEA *lpDevMode,
[in] DWORD dwFlags
);
パラメーター
[in] lpDevMode
新しいグラフィックス モードを記述する DEVMODE 構造体へのポインター。 lpDevMode
DEVMODE の dmSize メンバーは、DEVMODE 構造体のサイズ (バイト単位) に初期化する必要があります。 DEVMODE の dmDriverExtra メンバーは、DEVMODE 構造体に続くプライベート ドライバー データのバイト数を示すために初期化する必要があります。 さらに、DEVMODE 構造体の次のメンバーの一部またはすべてを使用できます。
メンバー | 意味 |
---|---|
dmBitsPerPel を |
ピクセルあたりのビット数 |
dmPelsWidth を |
ピクセル幅 |
dmPelsHeight | ピクセルの高さ |
dmDisplayFlags を |
モード フラグ |
dmDisplayFrequency を |
モードの頻度 |
dmPosition を |
マルチモニター構成でのデバイスの位置。 |
上記の 1 つ以上の DEVMODE メンバーを使用するだけでなく、表示設定を変更するには、dmFields メンバーに次の値の 1 つ以上を設定する必要があります。
価値 | 意味 |
---|---|
DM_BITSPERPEL | dmBitsPerPel 値を使用します。 |
DM_PELSWIDTH | dmPelsWidth 値を使用します。 |
DM_PELSHEIGHT | dmPelsHeight 値を使用します。 |
DM_DISPLAYFLAGS | dmDisplayFlags 値を使用します。 |
DM_DISPLAYFREQUENCY | dmDisplayFrequency 値を使用します。 |
DM_POSITION | dmPosition 値を使用します。 |
[in] dwFlags
グラフィックス モードを変更する方法を示します。 このパラメーターには、次のいずれかの値を指定できます。
CDS_TESTを指定すると、システムがそのグラフィックス モードに変更されることなく、アプリケーションで実際に有効なグラフィックス モードを判断できます。
CDS_UPDATEREGISTRYを指定し、グラフィックス モードを動的に変更できる場合は、情報がレジストリに格納され、DISP_CHANGE_SUCCESSFULが返されます。 グラフィックス モードを動的に変更できない場合は、情報がレジストリに格納され、DISP_CHANGE_RESTARTが返されます。
CDS_UPDATEREGISTRYを指定し、情報をレジストリに格納できなかった場合、グラフィックス モードは変更されず、DISP_CHANGE_NOTUPDATEDが返されます。
戻り値
ChangeDisplaySettings 関数は、次のいずれかの値を返します。
リターン コード | 形容 |
---|---|
|
設定の変更が成功しました。 |
|
システムが DualView に対応しているため、設定の変更は失敗しました。 |
|
無効なフラグのセットが渡されました。 |
|
グラフィックス モードはサポートされていません。 |
|
無効なパラメーターが渡されました。 これには、無効なフラグやフラグの組み合わせを含めることができます。 |
|
ディスプレイ ドライバーが指定されたグラフィックス モードに失敗しました。 |
|
レジストリに設定を書き込むことができません。 |
|
グラフィックス モードを機能させるには、コンピューターを再起動する必要があります。 |
備考
ChangeDisplaySettings に渡される DEVMODE 構造体が有効であり、ディスプレイ ドライバーでサポートされている値のみが含まれていることを確認するには、EnumDisplaySettings 関数によって返される DEVMODE を使用します。
表示モードが動的に変更されると、WM_DISPLAYCHANGE メッセージは、次のメッセージ パラメーターを使用して実行中のすべてのアプリケーションに送信されます。
パラメーター | 意味 |
---|---|
wParam | ピクセルあたりの新しいビット数 |
LOWORD(lParam) | 新しいピクセル幅 |
HIWORD(lParam) | 新しいピクセルの高さ |
DPI 仮想化
この API は DPI 仮想化には参加しません。 指定された入力は常に物理ピクセルの観点からであり、呼び出し元のコンテキストには関連しません。手記
winuser.h ヘッダーは、Unicode プリプロセッサ定数の定義に基づいて、この関数の ANSI または Unicode バージョンを自動的に選択するエイリアスとして ChangeDisplaySettings を定義します。 エンコードに依存しないエイリアスをエンコードに依存しないコードと組み合わせて使用すると、コンパイルエラーやランタイム エラーが発生する不一致が発生する可能性があります。 詳細については、「関数プロトタイプの 規則」を参照してください。
必要条件
要件 | 価値 |
---|---|
サポートされる最小クライアント | Windows 2000 Professional [デスクトップ アプリのみ] |
サポートされる最小サーバー | Windows 2000 Server [デスクトップ アプリのみ] |
ターゲット プラットフォーム の |
ウィンドウズ |
ヘッダー | winuser.h (Windows.h を含む) |
ライブラリ | User32.lib |
DLL | User32.dll |
API セットの | ext-ms-win-ntuser-sysparams-ext-l1-1-1 (Windows 10 バージョン 10.0.14393 で導入) |
関連項目
CreateDC の
DEVMODE の
EnumDisplayDevices の
EnumDisplaySettings の