【解決方法】すべての解像度で動作する MFC アプリケーションを設計する方法


私は現在、解像度 1920 x 1080 用に設計されたダイアログを持つ Visual Studio 2017 の MFC アプリケーションに取り組んでいますが、今はそれを変更して、すべての解像度に対応できるようにしたいと考えています。

アプリケーションが解像度に関係なくすべての画面サイズに収まるようにするには、アプリケーションにどのような変更を加える必要がありますか。

私が試したこと:

「movewindow()」と「setwindowpos()」関数を使用することを考えましたが、画面上に多くのコントロールがあり、それらをまとめて移動する方法がわからなかったため、試しませんでした。

解決策 1

アプリがすべての解像度でうまく動作するようにゼロから設計されていない限り、それはほとんど不可能です。

アプリがVSのように設計されている場合(「ドッキング可能な」ツールボックスなどの可変フォントとフォントサイズのワークスペースが中央にあり、ツールバー以外のボタンはほとんどありません)、それは簡単です:ユーザーはフォントサイズを設定します「編集」と他のすべてがその周りを流れます。

しかし、アプリがボタンやテキスト ボックスで覆われたダイアログである場合、それはまったくの悪夢です!
たとえば、解像度が上がってもボタンのサイズを大きくしないと、ボタンの間隔が大きくなり、見栄えが悪くなります。さらに、テキストが小さすぎて読めなくなり、ユーザーはそれを理解できなくなります。
ボタンのサイズを大きくすると、プロポーションを適切に保つことができますが、テキストも拡大縮小しない限り、まだ見栄えが悪くなります。中央に小さなテキストがある大きなボタンは、読める場合と読めない場合があります. テキストを拡大縮小すると、大きなモニターで「SHOUTY」になる場合があります。

逆に、解像度を下げると、逆に同じ問題が発生します。ボタンが重なる、テキストが小さすぎて読めない、大きすぎてボタンに収まらないなどです。

一般的に言えば、最初からこれについて考えていない限り、それは悪い考えです!

あなたのアプリがどのように設計されているかわかりません (しかし、あなたの説明は「柔軟」というよりも「ダイアログ」のように聞こえます)。

コメント

タイトルとURLをコピーしました