TreeViewの再描画処理を回避するには?

解決


 2007-10-18 22:16:51  No: 99594

お世話になります。
質問がありますので宜しくお願いします。

TreeView(VB6仕様)でノードを追加している間、処理の高速化のために再描画処理を回避させたい(=追加処理が終わってからいっぺんに再描画させたい)のですが上手くいきません。
以下の2パターンで試してみたのですが効果がありませんでした。

・パターン1
Ret = LockWindowUpdate(TreeView1.hwnd)

TreeView1にNodeを追加する処理・・・

Ret = LockWindowUpdate(0&)


・パターン2
Ret = PostMessage(TreeView1.hwnd, WM_SETREDRAW, False, Byval CLng(0))

TreeView1にNodeを追加する処理・・・

Ret = PostMessage(TreeView1.hwnd, WM_SETREDRAW, True, Byval CLng(0))


両パターン共、戻り値には1が来るのでエラーにはなっていないと思うのですが・・・(?_?;)
何卒宜しくお願いしますm(__)m


我龍院  2007-10-19 11:41:55  No: 99595

WM_SETREDRAWをFalseにした場合、スクロールやBackColorの変更には有効ですが、
NodeがAddされたりした場合等TreeViewの構造が変わった場合はResetされるようですよ。


 2007-10-21 16:44:41  No: 99596

返信が遅くなってすみません。

>WM_SETREDRAWをFalseにした場合、スクロールやBackColorの変更には有効ですが、
NodeがAddされたりした場合等TreeViewの構造が変わった場合はResetされるようですよ。

そうだったんですね・・・どうりで何度やっても変わらないわけですね(^_^;A)
本当にありがとうございました。すごく勉強になりました。
また宜しくお願いしますm(__)m


※作成する前に利用規約をご確認ください。

※Google reCAPTCHA認証からCloudflare Turnstile認証へ変更しました。







   このエントリーをはてなブックマークに追加