我想要通过程序设置另一个程序中的列表框选择项目,请问下该怎么实现。

解决方案 »

  1.   

    先用findwindow findwindowex获得列表框的句柄,然后用sendmessage发送LB_SETCURSEL消息即可:SendMessage(mhWnd,   LB_SETCURSEL,   NewIndex,   0&)'  NewIndex从0开始,就是说想选中第1项,NewIndex=0,想选中第2项,NewIndex=1.....
      

  2.   

    不行啊. 
     我用SPY++ 观察过它的消息, 有鼠标左键消息  
             Call SendMessage(hwnd04, WM_LBUTTONDOWN, MK_LBUTTON, pos)
     还有用你的方式
             Call SendMessage(hwnd04, LB_SETCURSEL, 1, 0&)
     都不行.还有其它办法没.
      

  3.   


    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
    Private Const CB_SETCURSEL = &H14EPrivate Sub Command1_Click()
    SendMessage Combo1.hwnd, CB_SETCURSEL, NewIndex, 3&
    End SubPrivate Sub Form_Load()
    Combo1.AddItem "123"
    Combo1.AddItem "456"
    Combo1.AddItem "789"
    Combo1.AddItem "qwe"End Sub
      

  4.   

    常数 CB_SETCURSEL 就是 combo的 listindex属性,加分啊~