カテゴリー別

お絵描き、デザイン

写真、動画関連ソフト

アメーバピグ専用ソフト

ホームページ関連

画像処理

スキャナー用

SEO 関連

お楽しみ

その他

過去ログ

2018年07月09日(月)

ミルノ PC フォトフレーム、メニューを「表示スケール」に対応させる作業中

写真閲覧ソフトのミルノ PC フォトフレーム の修正中。
現在、メニューを「表示スケール」に対応させる作業中です。

写真をミルノに!

で覚えてね。キラーン。

「表示スケール」とは、Windows 10 の
ディスプレイの設定にあるヤツです。

現在公開中のミルノだと、表示スケールを
大きくするとボケるので、改善中です。

基本的にはフォントサイズを大きくして、
それに合わせてボタンの画像なんかも
大きくすればいいわけですが
作業量は結構ありますね。

で、今はフォントを自由に変更できるようにする作業中です。

今日はメインメニューのフォントを
変更する機能を実装してましたが、
これは、結構大変です。

まず、どう、対応するかについて、2 通りの方針があります。

1 つは、スケールを変更しても、
アプリを再起動するまで反映しない方針。

これは、それほど大変ではありません。

アプリのマニフェストを適切に設定すれば、
WTL::CCommandBarCtrlImpl も、
Windows API の TrackPopupMenuEx も
再起動すれば、スケールに合わせた値で
メニューを表示するようになります。

もう 1 つは再起動なしで反映させる方針です。
モニター毎の DPI に対応する場合も
再起動なしで反映するため、こちらの方針となります。

こちらは、かなり厄介です。特に、TrackPopupMenuEx
の高解像度対応版がないため、自前で描画する必要がありそうです。

----
2018/07/12 追記

と思ったのですが、
Per-Monitor and Per-Monitor (V2) DPI Awareness
に対応していることを、マニフェストで宣言すると
TrackPopupMenuEx も、再起動無しで高解像度となりました。

ちょっとした勘違いがあって、
なんとなく dpiAware を true/PM にすることが
V2 のことかなと思っていたのですが、全然違いました。

正しくは、dpiAwareness を、
PerMonitorV2, PerMonitor とかにします。

Application Manifests | Microsoft Docs
Application manifest for Per Monitor V2 · GitHub

また、PerMonitorV2 にすると、ウィンドウキャプションや、
ツリービューの + ボタン、スクロールバー
なんかも再起動無しで大きくなるようです。

ただし、V2 は、Windows 10 より前の OS では認識しないため、
Windows 8 などの古い OS 向けに PerMonitor の対応を行うには
自前のコードを書く必要がありそうです。

追記終わり
----

自分は、TrackPopupMenuEx 中に、マウスホイールメッセージが
どうしても取得できない問題を回避するために作成した
自前のコンテキストメニュー表示コードがあったので
それを改良して対応することにしました。

が、これはかなりのイバラの道なので、
真似しない方がいいでしょう。

結論からいうと、だいたい動くようになったので、
これから、コードを綺麗にしたり、デバッグしたりします。

まだまだ作業量があるので、当分は公開できませんが、
次期バージョンでは、ディスプレイ毎の DPI に対応する予定です。

お楽しみに!

・・・

日本語の最新版はこちらのページから、ダウンロードできます
You can download the latest version of Miruno PC Photoframe here.

x64 の最新版はこちらのページから、ダウンロードできます
Download the latest version of Miruno PC Photoframe x64 here.

・・・

月額会員専用のx64 版 もあります。
月額会員には、こちらのページから参加できます

・・・

ウィンドウキャプションも再起動なしでの
DPI の変更に対応してないので、なんらかの方法で
対応せないかんです。こちらも、自前で描画する必要があるかも。

ミルノ PC フォトフレーム
ミルノ PC フォトフレームのダウンロード
ミルノ PC フォトフレームの更新履歴
ご意見・ご要望連絡窓口


コメント
コメントする