[リストへもどる]   [VBレスキュー(花ちゃん)]
一括表示

投稿時間:2006/08/24(Thu) 07:12
投稿者名:バル
Eメール:
URL :
タイトル:
システムカラー変更に伴うツリービューの前景背景色
ツリービュー(前景色背景色ともシステムカラー)のあるアプリを起動中に、
画面のプロパティで対応する前景色、背景色を変更した場合、
ツリービューの前景色、背景色が追従して変更されません。
(フォームやラベル等は追従して変更される)

アプリの再起動なしで変更する方法はあるのでしょうか。

投稿時間:2006/08/24(Thu) 11:05
投稿者名:K.J.K.
Eメール:
URL :
タイトル:
Re: システムカラー変更に伴うツリービューの前景背景色
そのTreeViewのVersionはどちらでしょうか? 5.0? 6.0?
6.0であるのならば、5.0で試してみるとか。

それでも更新されないようならば、SysInfo.ocxを使って
SysColorsChangedイベントで更新を試みるとか。

投稿時間:2006/08/24(Thu) 20:11
投稿者名:バル
Eメール:
URL :
タイトル:
Re^2: システムカラー変更に伴うツリービューの前景背景色
K.J.K.様、ありがとうございます。

一応、MSサイトの技術文書に方法があったので、
その方法で解決できそうです。
ざっと書くと、
1)GetSysColor()でシステムカラーを取得
2)SendMessage()でツリービューに対し
   1で取得した色を設定する
3)GetWindowLong()でツリービューのスタイル取得
4)SetWindowLong()でツリービューの(ノードのつながりを
   示す)線を更新
となります。
タイミングはK.J.K.様の書かれた通りSysInfoコントロールの
SysColorsChangedイベント行います。
ツリービューのバージョンが6.0だと、一部描画が更新されませんでした。

#でも、バージョン6.0で今まで作っているので5.0に変更すると
#確認が大変だ。。。