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

アーカイブの一覧に戻る
matsuo zmats****@gmail*****
2022年 5月 23日 (月) 00:29:12 JST


松尾です。

On 2022/05/15 23:14, NAGATA Shinya wrote:
 > - ほかに WM_SETICON しているところで高解像度対応する
 >    keycode.cpp, ftdlg.cpp, ftdlg_lite.cpp, tekwin.cpp, ttmmain.cpp

r9940までで対応しました。

 > - SetVTIcon() の呼び出し方
 >    エクスポート関数のほうがいい気がする。

関数へのポインタを入れるのはいったんやめてみようと思います。

 > - SetCustomNotifyIcon() が使われなくなってしまった
 >    CustomIcon は「Windows 2000 のときに同じ図柄の 4bit アイコン」のために
 > しか使われていないが、本来は「通知アイコンに、VTウィンドウのアイコンとは
 > 違うアイコンを使うことができる」設計だと思う。
 > SetVTIcon() の中でまとめて処理するのではなく、別々に呼び出したほうが
 > この設計に沿っている気がする。

わたしも同様に感じます。


ソースを見ていて気づいたのですが
ttmmain.cpp 内の次の3関数(2メッセージ)が気になります。
- BOOL CCtrlWindow::OnEraseBkgnd(HDC DC)
- void CCtrlWindow::OnPaint()
   - WM_ICONERASEBKGND
- HCURSOR CCtrlWindow::OnQueryDragIcon()
   - WM_QUERYDRAGICON

どうもアイコンに関連ありそうなのですが、
vtwin.cpp ではメッセージをハンドルしていなくて
アイコン関連で特におかしい動作はしていないように思います。

どの関数にも"for icon drawing in Win NT 3.5" という
コメントがついていて NT3.5固有なのかな?と思わせます。

調べるとメッセージはありそうなのですが
うまく動作しているようだし・・
どうしたものでしょう?



ttssh2-dev メーリングリストの案内
アーカイブの一覧に戻る