いくつかのビットマップ、ダイアログ ボックス、およびメニューを備えた MFC アプリケーションがあります。現在、1 つのモニター解像度 (1280x1024) のみをサポートしています。さまざまなモニター解像度のサポートを追加する予定です。そのためには、さまざまな解像度のビットマップをロードしたり、フォント サイズを変更したりする必要があると思います。私の質問は、これらが典型的な Windows アプリケーションでどのように処理されるかということです。単一のビットマップを使用し、モニターの解像度に応じて拡大/縮小しますか、それとも実際にはリソースに異なるビットマップのセットがあり、解像度に応じて動的にロードしますか? これに対する標準的な解決策はありますか?
5 に答える
過去に、私は 1 つの大きな画像を使用し、それに応じて拡大縮小しました。
メニューとダイアログのサイズを確実に変更するのは難しい作業ですが、CodeProject には役立つヘルパー コードがあります。
解像度の異なる複数のリソースを使用するといいでしょう。アイコンは動的に拡大縮小できますが、適切な画像編集プログラムでサイズを変更すると、見栄えがよくなります。
メニューとツールバーのアイコンは、通常、画面の解像度に関係なく同じピクセル数で表示されます。したがって、解像度が高くなるにつれて、メニューとツールバーが占める画面の割合が小さくなります。
ビットマップに関するさまざまな解像度を処理する標準的な方法はないと思います。
また、アプリケーションが Windows DPI スケーリングで動作することを確認します。これは、特定の解像度に合わせてアプリケーションを再設計するよりも、高解像度ディスプレイで実行する場合に適した代替手段となる場合があります。
ビットマップのスケーリングは見栄えが悪くなります(大きくすると常に見栄えが悪くなり、ソースによって異なります)。可能であれば、うまくスケーリングできるいくつかの小さなビットマップの大きなビットマップを作成できるかどうかを確認してください。多くの場合、一方向にうまくスケーリングできるビットマップを作成するのはかなり簡単です。たとえば、1つのビットマップを使用するのではなく、何かの周りにフレームを作成する場合は、三目並べのように9つに切ります。4つのコーナーピースは元のサイズのままで、上下のピースは水平方向に伸び、左右は垂直方向に伸び、中央は両方向に伸びます(使用されている場合)。