问题如题
定位和取内容都可以了 就差这个双击消息不懂怎么发 希望大虾们指点迷津

解决方案 »

  1.   


    var
      p: TPoint;
    begin
      if ListView.Selected <> nil then
      begin
        p := ListView.Selected.GetPosition;
        SendMessage(ListView.Handle, WM_LBUTTONDBLCLK, MK_LBUTTON , pos.X + pos.Y shl 16);
      end;
    end;
      

  2.   

    楼上的有笔误。
    SendMessage(ListView.Handle, WM_LBUTTONDBLCLK, MK_LBUTTON , pos.X + pos.Y shl 16);
    改为
    SendMessage(ListView.Handle, WM_LBUTTONDBLCLK, MK_LBUTTON , p.X + p.Y shl 16);不过我用的不是这种方法,你这种方法最大的缺点是最后一个参数的坐标不容易获取,因为它是外部SysListView32。其实可以发另一个消息就回避了坐标的问题。我以前写过注册表定位,右侧即为SysListView32控件。
      

  3.   

    你的定位已经可以了,就是你可以得到x,y的坐标了,用以下语句就可以了,procedure MyMouseDBClick;
    begin
      mouse_event(MOUSEEVENTF_LEFTDOWN, 0, 0, 0, 0);
      mouse_event(MOUSEEVENTF_LEFTUP, 0, 0, 0, 0);
      mouse_event(MOUSEEVENTF_LEFTDOWN, 0, 0, 0, 0);
      mouse_event(MOUSEEVENTF_LEFTUP, 0, 0, 0, 0);
    end;procedure TForm1.Button1Click(Sender: TObject);
    begin
      SetCursorPos(100,200);//x,y
      MyMouseDBClick;
    end;
      

  4.   

    1、填充NMITEMACTIVATE结构,申明部分在CommCtrl单元;
    2、SendMessage(LV.Handle,WM_Notify,0,@NMITEMACTIVATE);注意:NMITEMACTIVATE结构说明,参考:http://msdn.microsoft.com/en-us/library/bb774771(VS.85).aspx
    关键是填充结构中的hdr。
    NMHDR结构,参考:http://msdn.microsoft.com/en-us/library/bb775514(v=VS.85).aspx
    只要填充hdr.Code := NM_DBLCLK, 发给listview,告诉他双击了某个节点
      

  5.   

    WM_NOTIFY应该是发给ListView的父窗口.