2009-08-15 5 views
0

VB6では、LVS_EX_DOUBLEBUFFERを使用して共通コントロールのListViewフリッカーをフリーにすることはできますか?このプロパティはVB.NETでは公開されていますが、VB6では公開されていません。私は一般的なコントロールのバージョン6を使用するので、理論的には動作するはずです。しかし、私はそれを実装する方法を知らない。VB6:フリッカーフリーLVS_EX_DOUBLEBUFFERのListView?

答えて

0

あなたはvbAcceleratorからListViewコントロールのためのfree VB6 replacementを試みることができます。それはまたuse a manifest

LVS_EX_DOUBLEBUFFERがあなたのVB6でコモンコントロール6を使用することをサポートしています。 Form_LoadでListViewにLVS_EX_DOUBLEBUFFERメッセージを次に送信します。このようなもの(.NETのsampleに基づいています)。警告 - air code

Private Declare Function SendMessage Lib "user32" Alias "SendMessageA" (ByVal hwnd As Long, _ 
    ByVal wMsg As Long, ByVal wParam As Long, lParam As Any) As Long 

Const LVM_FIRST = &H1000 
Const LVM_SETEXTENDEDLISTVIEWSTYLE = (LVM_FIRST + 54) 
Const LVM_GETEXTENDEDLISTVIEWSTYLE = (LVM_FIRST + 55) 
Const LVS_EX_DOUBLEBUFFER = &H10000 
Const LVS_EX_BORDERSELECT = &H8000 

Private Sub FormLoad() 
    Dim styles As Long 
    styles = SendMessage(listView.hwnd, _ 
     LVM_GETEXTENDEDLISTVIEWSTYLE, 0, ByVal 0&) 
    styles = Style Or LVS_EX_DOUBLEBUFFER Or LVS_EX_BORDERSELECT 
    Call SendMessage(listView.hwnd, _ 
     LVM_SETEXTENDEDLISTVIEWSTYLE, 0, ByVal styles) 

End Sub