質問をすることでしか得られない、回答やアドバイスがある。

15分調べてもわからないことは、質問しよう!

ただいまの
回答率

90.50%

  • Windows

    1710questions

    Windowsは、マイクロソフト社が開発したオペレーティングシステムです。当初は、MS-DOSに変わるOSとして開発されました。 GUIを採用し、主にインテル系のCPUを搭載したコンピューターで動作します。Windows系OSのシェアは、90%を超えるといわれています。 パソコン用以外に、POSシステムやスマートフォンなどの携帯端末用、サーバ用のOSもあります。

  • MFC

    144questions

    MFC (Microsoft Fouondation Class)とは、MicrosoftがVC++用に開発したWindows用アプリケーションのフレームワークです。

MFC dpiサイズを変更してもアプリごとに適用されないようにしたい

受付中

回答 1

投稿 編集

  • 評価
  • クリップ 2
  • VIEW 1,762

Yussa

score 16

イメージ説明

高解像度モニタで文字が小さくならないように、Windowsのコントロールパネルよりdipが100%以上に変更できますが、画面の文字やコントロールもそれに合わせて拡大されると思います。

ただ私のアプリでは標準コントロール以外に画像などを貼り付けたパーツを使用しており、このせいでアプリの画面が崩れてしまいます。

特定のアプリだけこの自動拡大の影響を受けずにもとの大きさで表示する方法はないでしょうか?

下記の2つは変更しても何も変わりませんでした。
・ショートカットの互換性プロパティで、「高DPI設定では画面のスケーリングを無効にする」
・VisualStudioのプロパティで、マニフェストツール「DPI認識の有効化」

宜しくお願い致します。

開発環境
VisualStudio2012 (MFC)
Windows7 64bit
MFCダイアログベース

参考
https://blogs.msdn.microsoft.com/ttanaka/2014/07/16/dpihigh-dpi-1-dpi/

https://blogs.msdn.microsoft.com/vcblog/2010/03/11/mfc-applications-now-default-to-being-dpi-aware/

https://docs.microsoft.com/ja-jp/windows/desktop/hidpi/high-dpi-desktop-application-development-on-windows

https://qiita.com/marksard/items/1cced8f28f2717741b2c

https://qiita.com/felis_silv/items/efee4b1a397b0b95100a

100%にした場合
イメージ説明

125%にした場合
イメージ説明

コントロールは相対的に再配置されるが、画像やピクセル指定をするとずれる。

  • 気になる質問をクリップする

    クリップした質問は、後からいつでもマイページで確認できます。

    またクリップした質問に回答があった際、通知やメールを受け取ることができます。

    クリップを取り消します

  • 良い質問の評価を上げる

    以下のような質問は評価を上げましょう

    • 質問内容が明確
    • 自分も答えを知りたい
    • 質問者以外のユーザにも役立つ

    評価が高い質問は、TOPページの「注目」タブのフィードに表示されやすくなります。

    質問の評価を上げたことを取り消します

  • 評価を下げられる数の上限に達しました

    評価を下げることができません

    • 1日5回まで評価を下げられます
    • 1日に1ユーザに対して2回まで評価を下げられます

    質問の評価を下げる

    teratailでは下記のような質問を「具体的に困っていることがない質問」、「サイトポリシーに違反する質問」と定義し、推奨していません。

    • プログラミングに関係のない質問
    • やってほしいことだけを記載した丸投げの質問
    • 問題・課題が含まれていない質問
    • 意図的に内容が抹消された質問
    • 広告と受け取られるような投稿

    評価が下がると、TOPページの「アクティブ」「注目」タブのフィードに表示されにくくなります。

    質問の評価を下げたことを取り消します

    この機能は開放されていません

    評価を下げる条件を満たしてません

    評価を下げる理由を選択してください

    詳細な説明はこちら

    上記に当てはまらず、質問内容が明確になっていない質問には「情報の追加・修正依頼」機能からコメントをしてください。

    質問の評価を下げる機能の利用条件

    この機能を利用するためには、以下の事項を行う必要があります。

回答 1

0

手元にVS2015しかありませんでしたので、ちょっとUIが違うかもしれませんがDPI認識を「なし」にすれば、
DPI仮想化環境下で動くようになります。

イメージ説明

Win7でしたらたしか125%以上でDPI仮想化機能がオンになり、
96DPI相当で描画されたものをOSが拡大して表示してくれます。

ただし、Desktop Window Manager (DWM) によってこの機能は動いていたと思いますので、
エアロを無効にしていたりするとDPI仮想化機能は動きません。

投稿

  • 回答の評価を上げる

    以下のような回答は評価を上げましょう

    • 正しい回答
    • わかりやすい回答
    • ためになる回答

    評価が高い回答ほどページの上位に表示されます。

  • 回答の評価を下げる

    下記のような回答は推奨されていません。

    • 間違っている回答
    • 質問の回答になっていない投稿
    • スパムや攻撃的な表現を用いた投稿

    評価を下げる際はその理由を明確に伝え、適切な回答に修正してもらいましょう。

  • 2018/10/03 12:34

    ご回答有難うございます。
    勝手に拡大されてしまうことがレイアウト崩れの原因かと思いますので、それを簡単に回避できないか検討しております。上記DPI認識の設定をあり/なしどちらでも拡大されてしまうようです。
    コントロールの座標を取得しても配置とは異なるようですので、拡大率を考慮した座標計算をする必要があるかもしれませんが、ちょっと手間です。

    キャンセル

  • 2018/10/03 13:15

    ええと、DPI仮想化による拡大はアプリケーション側は96DPIとして描画&動作させられますので、見た目がくずれることはありません。DPI仮想化機能が働いていないのではないでしょうか。

    キャンセル

  • 2018/10/04 20:14

    ご回答有難うございます。なるほどです、仮想化をする方向で探したいと思います。ただDPI認識の設定を変えても変化はありませんでした。
    新たにキャプチャを添付しました。実際の画面はもっと複雑ですが、位置関係が変わってしまっております。DPI仮想化が有効になるとビットマップも拡大されるのでしょうか?

    キャンセル

  • 2018/10/04 20:36

    画像を見てみましたが、ボタンやテキストボックスがほんのりぼやけているのでDPI仮想化で動作していると思います。ピクチャーボックスにビットマップを貼っただけのような場合は、拡大されるはずです。movieアイコンや黒い四角がずれる原因はスクショだけではわかりません。

    キャンセル

  • 2018/10/04 20:45

    VSのバージョンが低いとdpiを認識しない設定をmanifestファイルに書き出してくれない問題があったような気がしますが、出力されているmanifestファイルの内容を確認されてはどうでしょうか?

    キャンセル

同じタグがついた質問を見る

  • Windows

    1710questions

    Windowsは、マイクロソフト社が開発したオペレーティングシステムです。当初は、MS-DOSに変わるOSとして開発されました。 GUIを採用し、主にインテル系のCPUを搭載したコンピューターで動作します。Windows系OSのシェアは、90%を超えるといわれています。 パソコン用以外に、POSシステムやスマートフォンなどの携帯端末用、サーバ用のOSもあります。

  • MFC

    144questions

    MFC (Microsoft Fouondation Class)とは、MicrosoftがVC++用に開発したWindows用アプリケーションのフレームワークです。