[ttssh2-dev 393] Re: DPIに合わせてアイコンを変更

Back to archive index
NAGATA Shinya maya.****@gmail*****
2022年 5月 10日 (火) 13:03:12 JST


永田です。

可能なことなのかわかりませんが、こんな仕組みを考えていました。
https://osdn.net/projects/ttssh2/ticket/43907#comment:1412:43907:1652155168

> プラグインに解像度が変わったこと、を伝える方法
図で言うと OnDpiChanged() から TTXSSH への通知です。
プラグインのフック関数に TTXSetWinSize というのがありますが、
TTXSetWinDpi というフック関数を足すのはどうでしょうか。
もし追加したら、既存のコンパイル済みプラグインを同時にロード
したときに影響が出るでしょうか?
関連?: https://osdn.net/projects/ttssh2/ticket/44436

> ttermpro.exeがアイコンを更新する/しない
図で言うと、TTXSSH が「プラグイン側でアイコンを管理します/
もう管理しません」と通知する部分です。
これは ttermpro.exe ではなく ttpcmn.dll に追加という形になる
でしょうか?

> void SetVTIcon(TTSet *ts, HANDLE inst, DWORD id);
現状では SetIcon()で、図で言うと、ttermpro.exe 側の SetIcons()
(VT ウィンドウのアイコンx2と通知アイコンをまとめてセットする)
に当たります。
図では TTXSSH から TTLoadIcon() を呼び出して TTXSSH 側でセット
していますが、TTXSSH から hInstance と pvar->settings.IconID を
渡して読み込みと設定処理を本体に投げられるなら楽そうですね。
これも ttpcmn.dll に追加という形になるでしょうか?

ちょっと分からない点があるのですが、TTXSSH では
pvar->NotificationWindow から解像度を得られますが、CVTWindow から
呼び出されるのではなく、おそらく ttpcmn.dll 内になるアイコン管理
切り替え関数・アイコン設定関数で、VT ウィンドウのハンドルを扱う
(そして解像度を得る)ことができるでしょうか?

-- 
TeraTerm Project https://ttssh2.osdn.jp/
NAGATA Shinya <maya.****@gmail*****>



ttssh2-dev メーリングリストの案内
Back to archive index