ネットを調べてみると、ほとんどの人は GetDC(NULL) がプライマリモニター全体 (左上に 0,0 を持つモニター) のデバイス コンテキストを取得すると考えているようです。ただし、GetDC の msdn ページがそう言っている可能性があるため、ほとんどの人がそう言っているように感じます。
ただし、次の 2 つのページ (少なくともこれら 2 つ) を見ると、GetDC(NULL) は仮想画面全体 (システムに接続されているすべてのモニターを含むもの) をカバーするデバイス コンテキストを返すと言っているようです。
(1) https://www.microsoft.com/msj/0697/monitor/monitor.aspx -> ページで「これは仮想デスクトップの RECT を取得します」を検索し、そのステートメントの周りのビットを調べます (特に GetDC (NULL) 上)。
(2) http://msdn.microsoft.com/en-gb/library/windows/desktop/dd162610%28v=vs.85%29.aspx -> ページで「GetDC(NULL)」を検索
私はそれが本当はどれなのかを理解しようとしてきましたが、多数の相反する意見が私を打ち負かしています.
誰かがこれを実際に経験したことがあり、マルチモニターシステムでテストできますか? (モニターが一つしかないので無理です。)
プライマリ モニター全体をカバーする DC を取得しますか、それとも仮想画面全体をカバーする DC を取得しますか?
編集
試してみたい人のために、私のシステムでは、デフォルトのプロジェクトを作成して WinMain に以下を配置すると、画面が黒くなります。複数のモニターがあり、試してみると、プライマリ モニターだけが黒くなるのか、それともすべてのモニターが黒くなるのかという疑問が生じます。
HDC hdc = GetDC(NULL);
RECT r = {LONG_MIN, LONG_MIN, LONG_MAX, LONG_MAX};
FillRect(hdc, &r, (HBRUSH)(COLOR_BTNTEXT + 1));
ReleaseDC(NULL, hdc);