2009-06-01 4 views
3

私はいくつかのビットマップ、ダイアログボックス、およびメニューを持つMFCアプリケーションを持っています。現在、1つのモニタ解像度(1280x1024)しかサポートしていません。私は別のモニター解像度のサポートを追加する予定です。これを行うには、私は異なる解像度のビットマップをロードする必要があります、フォントサイズなどを変更する必要があります私の質問は、これらの典型的なWindowsアプリケーションで処理される方法ですか?彼らは、単一のビットマップを使用し、モニタの解像度に応じて伸縮させるか、実際にはリソースに異なるビットマップセットを持ち、解像度に応じて動的にロードしますか?これに標準的な解決策はありますか?異なるモニタ解像度をサポートします

答えて

2

これまで私は1つの大きな画像を使用し、それに応じて拡大縮小しました。

メニューとダイアログのサイズを変更するのは難しいですが、CodeProjectに役立つヘルパーコードがあります。

1

異なる解像度で複数のリソースを使用するとします。アイコンを動的に拡大縮小することはできますが、適切な画像編集プログラムでアイコンのサイズを変更すると、より見栄えがよくなるでしょう。

1

通常、メニューとツールバーのアイコンは、画面の解像度に関係なく、同じピクセル数で表示されます。したがって、メニューとツールバーは、解像度が上がるにつれて画面の占める割合が小さくなります。

ビットマップが関係する異なる解像度を扱う標準的な方法はないと思います。

1

また、アプリケーションがWindows DPIスケーリングで動作することを確認します。これは、特定の解像度に合わせてアプリケーションを再設計するのではなく、より高解像度のディスプレイで実行するときのより良い選択肢かもしれません。

0

スケーリングビットマップは悪く見えます(サイズを大きくすると、常に見た目が悪くなり、ソースに依存することが少なくなります)。可能であれば、規模の良いいくつかの小さなビットマップの大きなビットマップを作成できるかどうかを確認してください。多くの場合、ある方向にうまくスケーリングできるビットマップを作ることはかなり簡単です。例えば、何かの周りにフレームを作りたいのであれば、1つのビットマップを使うのではなく、ティックタックトウボードのように9個にカットします。 4つのコーナーピースは元のサイズを保持し、上下のピースは左右に伸び、左右は垂直になり、センターは両方向に移動します(まったく使用されている場合)。

関連する問題