MONITORENUMPROC
コールバックシグネチャ
BOOL MONITORENUMPROC(
HMONITOR param0,
HDC param1,
RECT* param2,
LPARAM param3
);パラメーター
| フィールド | 型 | 説明 |
|---|---|---|
| param0 | HMONITOR | ディスプレイモニターのハンドルです。この値が NULL になることはありません。このパラメーターには通常 hMonitor という名前が付けられます。 |
| param1 | HDC | デバイスコンテキストのハンドルです。このパラメーターには通常 hdcMonitor という名前が付けられます。 このデバイスコンテキストは、hMonitor で識別されるディスプレイモニターに適した色属性を持ちます。デバイスコンテキストのクリッピング領域は、EnumDisplayMonitors の hdc パラメーターで識別されるデバイスコンテキストの可視領域、EnumDisplayMonitors の lprcClip パラメーターが指す四角形、およびディスプレイモニターの四角形の共通部分に設定されます。 EnumDisplayMonitors の hdc パラメーターが NULL だった場合、この値は NULL になります。 |
| param2 | RECT* | RECT 構造体へのポインターです。このパラメーターには通常 lprcMonitor という名前が付けられます。 hdcMonitor が NULL 以外の場合、この四角形は hdcMonitor で識別されるデバイスコンテキストのクリッピング領域とディスプレイモニターの四角形との共通部分になります。四角形の座標はデバイスコンテキスト座標です。 hdcMonitor が NULL の場合、この四角形はディスプレイモニターの四角形になります。四角形の座標は仮想画面座標です。 |
| param3 | LPARAM | EnumDisplayMonitors が列挙関数に直接渡す、アプリケーション定義のデータです。このパラメーターには通常 dwData という名前が付けられます。 |
公式ドキュメント
EnumDisplayMonitors 関数と共に使用される、アプリケーション定義のコールバック関数です。MONITORENUMPROC 型は、このコールバック関数へのポインターを定義します。MonitorEnumProc は、アプリケーション定義の関数名を表すプレースホルダーです。
戻り値
型: BOOL
列挙を続行するには TRUE を返します。
列挙を停止するには FALSE を返します。
解説(Remarks)
ヘッダーでは、パラメーターに名前が付けられていません: typedef BOOL (CALLBACK* MONITORENUMPROC)(HMONITOR, HDC, LPRECT, LPARAM);。そのため、構文ブロックでは unnamedParam1 ~ unnamedParam4 と表記されています。アプリケーション内では、これらのパラメーターに任意の名前を付けられます。ただし、通常は各パラメーターの説明に示した名前が使われます。
EnumDisplayMonitors 関数を使用すると、指定したデバイスコンテキストの可視領域と、必要に応じてクリッピング四角形とに交差するディスプレイモニターの集合を列挙できます。そのためには、hdc パラメーターに NULL 以外の値を設定し、lprcClip パラメーターを必要に応じて設定します。
また、デバイスコンテキストを指定せずに、デスクトップ上の 1 つ以上のディスプレイモニターを列挙するために EnumDisplayMonitors 関数を使用することもできます。そのためには、EnumDisplayMonitors の hdc パラメーターに NULL を設定し、lprcClip パラメーターを必要に応じて設定します。
いずれの場合も、EnumDisplayMonitors は、算出された列挙対象の集合に含まれるディスプレイモニターごとに、指定された MonitorEnumProc 関数を 1 回ずつ呼び出します。MonitorEnumProc 関数は、常にディスプレイモニターのハンドルを受け取ります。
EnumDisplayMonitors の hdc パラメーターが NULL 以外の場合、MonitorEnumProc 関数は、そのディスプレイモニターに適した色形式を持つデバイスコンテキストのハンドルも受け取ります。これにより、そのディスプレイモニターにとって最適な方法でデバイスコンテキストに描画できます。
Microsoft 公式リファレンス: 英語 (en-us) · 日本語 (ja-jp) · 原文ソース (GitHub)