SendMessage(Hwnd, LB_SETITEMDATA, 3, ????)
我要用LB_SETITEMDATA消息发送给一个Tlistbox来改变行的颜色
请问那个参数怎么给???????????????????????

解决方案 »

  1.   

    wParam是listbox中以0为基数的item的索引值,设置为-1表示所有项目
    lParam为设置的值
      

  2.   

    dim aaa as long
    aaa = SendMessage(WorkHwnd.MsgList, LB_GETITEMDATA, 3, 0)
    我用这个LB_GETITEMDATA消息取得了一个数,和在SPY++里得到的一样
    但用下面的再把这个消息发到listbox里,这个值就不是上面所得的那个了,这是怎么回事????
    rtn = SendMessage(WorkHwnd.MsgList, LB_SETITEMDATA, 3, aaa)
      

  3.   

    'This project needs a ListBox, named List1 and a TextBox, named Text1
    Private Declare Function SendMessage Lib "user32" Alias "SendMessageA" (ByVal hwnd As Long, ByVal wMsg As Long, ByVal wParam As Integer, ByVal lParam As Any) As Long
    Const LB_FINDSTRING = &H18F
    Private Sub Form_Load()
           With List1
            .AddItem "Computer"
            .AddItem "Screen"
            .AddItem "Modem"
            .AddItem "Printer"
            .AddItem "Scanner"
            .AddItem "Sound Blaster"
            .AddItem "Keyboard"
            .AddItem "CD-Rom"
            .AddItem "Mouse"
        End With
    End Sub
    Private Sub Text1_Change()
        'Retrieve the item's listindex
        List1.ListIndex = SendMessage(List1.hwnd, LB_FINDSTRING, -1, ByVal CStr(Text1.Text))
    End Sub
      

  4.   

    dim aaa as long
    aaa = SendMessage(WorkHwnd.MsgList, LB_GETITEMDATA, 3, 0)
    我用这个LB_GETITEMDATA消息取得了一个数,和在SPY++里得到的一样
    但用下面的再把这个消息发到listbox里,这个值就不是上面所得的那个了,这是怎么回事????
    rtn = SendMessage(WorkHwnd.MsgList, LB_SETITEMDATA, 3, aaa)
    加上byval试试