Winapi (C/C) の全画面 OpenGL ウィンドウの最適な解像度を決定するにはどうすればよいですか?

Barbara Streisand
リリース: 2024-10-26 10:24:03
オリジナル
200 人が閲覧しました

How can I determine the optimal resolution for a fullscreen OpenGL window in Winapi (C/C  )?

Winapi での現在の画面解像度の検出 (C/C )

今日の LCD 画面の世界では、新しく作成された OpenGL フルスクリーン ウィンドウの最適な解像度を決定することが重要です。シームレスなユーザーエクスペリエンスを提供します。 Winapi は、さまざまなユースケースに対応して、画面解像度情報を取得するためのいくつかの方法を提供します。

プライマリ モニターの解像度

プライマリ モニターのサイズを取得するには、次の Winapi 関数を使用できます。

  • 水平方向の場合は GetSystemMetrics(SM_CXSCREEN)
  • 垂直方向の場合は GetSystemMetrics(SM_CYSCREEN)

または、GetDeviceCaps をこの目的に使用することもできます。

結合されたモニター解像度

システム内のすべてのモニターの結合されたサイズを決定するには、水平方向の寸法に対して

  • GetSystemMetrics(SM_CXVIRTUALSCREEN) を使用します
  • 垂直方向の GetSystemMetrics(SM_CYVIRTUALSCREEN)

作業領域の解像度

プライマリ モニターの作業領域 (タスク バーとドッキング バーを除く) のサイズについては、以下を使用します。

  • SystemParametersInfo(SPI_GETWORKAREA)

特定のモニター解像度

特定のモニター (作業領域と画面の両方を含む) のサイズを取得するには:

  • GetMonitorInfo

注: モニターの座標は常に 0x0 から始まるわけではないことを覚えておくことが重要です。したがって、サイズを知っているだけでは、ウィンドウを正確に配置するには不十分です。 MonitorFromWindow を使用して、ウィンドウが存在するモニターを特定し、その後 GetMonitorInfo を呼び出します。

低レベル コントロール

下位レベルの解像度管理にアクセスしたり、画面設定を変更したりするには、次の関数を検討してください。 :

  • EnumDisplayDevices: ディスプレイ デバイスを列挙します
  • EnumDisplaySettings: サポートされているディスプレイ設定を列挙します
  • ChangeDisplaySettings: ディスプレイ設定を変更します

このアプローチは次のとおりです画面のリフレッシュ レート (GetDeviceCaps によって直接提供されない) を取得したり、解像度を調整したりする場合に特に役立ちます。

以上がWinapi (C/C) の全画面 OpenGL ウィンドウの最適な解像度を決定するにはどうすればよいですか?の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。

ソース:php.cn
このウェブサイトの声明
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。
著者別の最新記事
人気のチュートリアル
詳細>
最新のダウンロード
詳細>
ウェブエフェクト
公式サイト
サイト素材
フロントエンドテンプレート