カテゴリー別

お絵描き、デザイン

写真、動画関連ソフト

アメーバピグ専用ソフト

ホームページ関連

画像処理

スキャナー用

SEO 関連

お楽しみ

その他

過去ログ

2018年09月21日(金)

【win32】ダイアログパネルを表示スケールに対応する方法

SVG での出力も可能な、イラストレーター ソフト「ストローク」
の改良中。ミルノ と同様に、表示スケールに対応するつもりです。

今日は、ダイアログパネルを表示スケールに対応する作業をしました。

ダイアログパネルは、他のウィンドウの「子ウィンドウ」
として表示するダイアログのことを表しています。

ストロークでは、新しい線パネルなどのことです。

普通のダイアログと同様、適切なマニフェストを
アプリケーションに設定すると表示スケールの変更に
追従してレイアウトが自動的に更新されますが
ダイアログ全体のサイズは変化しないようです。

対応するには、WM_DPICHANGED メッセージ
で、ダイアログのサイズを変更します。

ただ、ダイアログパネルにはこのメッセージが
来ないので、ダイアログパネルのトップレベル
ウィンドウのメッセージに応じて、処理します。

サイズは、ダイアログテンプレートから取得できます。
DLGTEMPLATEEX 構造体 の cx、cy です。

ただ、この値は、特殊なダイアログ単位と呼ばれるものなので、
MapDialogRect 関数 でピクセル単位に変換する必要があります。

私の環境 (Windows 10、PerMonitorV2 のマニフェスト) では、
表示スケールに応じた正しい値に変換できるみたいでした。

あとは、 SetWindowPos 関数 などで
ウィンドウサイズを変更すれば OK です。

・・・

表示スケールには、まだ対応してないバージョンですが、
SVG エディター、ストロークはこちらからダウンロードできます

・・・

もちっとで、できるかな。

ストローク
ストローク ダウンロード
ストローク サンプル画像
ストローク 更新履歴
ご意見・ご要望連絡窓口


コメント
コメントする