C#, C♯, C#相談室 Part45
at TECH
182:デフォルトの名無しさん
08/02/12 20:12:09
ListViewでItemを追加してEndUpDateすると、全部のItemが再描画
されてしまいます。そこでそのちらつきを出さない方法についてこちら
でおききしていました。>スレリンク(tech板:859番)
その中のソースがC#なのでC#スレでお訊きします。よろしくです。
CodeProject Flicker-free ListView in .NET and XP. Free source code and programming help
URLリンク(www.codeproject.com)
にあるサンプルを試してみたのですが、DEMO版がうまくいくのにソース版
ですよ対策なしと同じでした。
ListViewのDoubleBufferingはちらつき防止に効果あるでしょうか?
またowner draw にした場合は自分でItemを描画する必要があるのでしょうか。
よろしくお願いします。
183:182
08/02/12 20:18:38
>>182 訂正>ソース版ですよ対策なしと同じ -> ソース版ですと対策なしと同じ
該当のサイトでは
public void SetExStyles()
{
LVS_EX styles = (LVS_EX)SendMessage(this.Handle,
(int) LVM.LVM_GETEXTENDEDLISTVIEWSTYLE, 0,0);
styles |= LVS_EX.LVS_EX_DOUBLEBUFFER | LVS_EX.LVS_EX_BORDERSELECT;
SendMessage(this.Handle,
(int) LVM.LVM_SETEXTENDEDLISTVIEWSTYLE, 0, (int) styles);
}
のようなコードがありました。これはDoubleBufferを使っているようなのですが、
owner draw はしてないようでした。一方、このサイトへのコメントレスとして
ついていたものでは、owner draw にしておいて
this.SetStyle(ControlStyles.OptimisedDoubleBuffer, True);
とするだけでちらつきはなくなるようなことが書かれていましたが、これは
自分で描画してやらないといけないようでその場合どのように描画すれば
よいのかわかりませんでした。自分で描画しないでも可能なような意味にも
取れてよくわからないのでした・・・
すみませんが、何卒よろしくお願いします。
184:デフォルトの名無しさん
08/02/13 00:08:14
すみません、よろしければ
スレリンク(tech板:182-183番)
について教えてください。何卒よろしくお願いします。
次ページ最新レス表示スレッドの検索類似スレ一覧話題のニュースおまかせリスト▼オプションを表示暇つぶし2ch
4447日前に更新/174 KB
担当:undef