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

解決


  2007-10-19 07: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 20:41:55  No: 99595

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


  2007-10-22 01:44:41  No: 99596

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

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

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


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

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






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