VB6 高DPI対応について への返答

投稿で使用できる特殊コードの説明。(別タブで開きます。)
本名は入力しないようにしましょう。
投稿した後で削除するときに使うパスワードです。返答があった後は削除できません。
返答する人が目安にします。相手が小学生か社会人かで返答の仕方も変わります。
最初の投稿が質問の場合、質問者が解決時にチェックしてください。(以降も追加書き込み・返信は可能です。)
※「過去ログ」について書くときはその過去ログのURLも書いてください。

以下の返答は逆順(新しい順)に並んでいます。

投稿者 らいよん  (社会人) 投稿日時 2019/10/1 17:40:51
魔界の仮面弁士様

いつも回答ありがとうございます。

>とりあえず、exe のプロパティの「互換性」タブから、互換モードの指定や、
>高DPI設定を試してみるのはどうでしょう。もしかしたら、問題を幾らか軽減できるかもしれません。
高DPIの設定は試してみたのですが現象は変わりませんでした。

それと互換モードとはOSを選択する所の事ですか?これは試してみなかったです。
現象がでるパソコンが手元に無いので今度さわれる時に試してみます。

ありがとうございました。
投稿者 魔界の仮面弁士  (社会人) 投稿日時 2019/9/27 19:45:17
紹介した英語スレッドで、SetProcessDPIAware API についても言及されていますが、
> Bottom line, avoid this API.
と書かれていますね。
「結論として、このAPI(を利用すること)は避けてください。」だそうで…。

.manifest による DPI 仮想化の有効/無効、コントロールの種類ごとの注意点など、
いろいろ纏められていますが、高 DPI が原因のズレだとしたら、すべてを解決できる
“銀の弾” は存在せず、幾つかの対応策を組みあわせて対処する必要がありそうです。


とりあえず、exe のプロパティの「互換性」タブから、互換モードの指定や、
高DPI設定を試してみるのはどうでしょう。もしかしたら、問題を幾らか軽減できるかもしれません。

※互換性タブの内容は OS のバージョンによっても異なるので、
 どう指定すべきかは一概には言えません。実際に試してみてください。

投稿者 魔界の仮面弁士  (社会人) 投稿日時 2019/9/27 19:20:35
こちらは如何でしょうか。
http://www.vbforums.com/showthread.php?816615-VB6-Tutorial-Being-DPI-Aware
投稿者 らいよん  (社会人) 投稿日時 2019/9/27 16:55:06
仕事で過去に作成したVB6アプリがあるパソコンで実行するとフォーム上の線の太さや文字の大きさが他のパソコンのイメージと事なると言う連絡があり、高DPIが原因では?と予測したのですが、色々調べてSetProcessDPIAware使用すればいいのかな?と言うところまではなんとなくわかったのですが、いかんせん使い方がわからず困っております。使い方又は参考になるページ等ご存じの方がおられましたらご教示頂けないでしょうか?