procedure TForm1.ButtonClick(Sender: TObject);
  var
    NMhdr:TNMHdr;
    NMlv:TNMListView;
begin
  NMhdr.hwndFrom:=ListView.Handle;
  NMhdr.idFrom:=GetDlgCtrlID(NMhdr.hwndFrom);
  NMhdr.code:=LVN_DELETEITEM;   //NM_CLICK也没有反应;
  NMlv.hdr:=NMhdr;
  NMlv.iItem:=1;
  SendMessage(Form1.Handle,WM_NOTIFY,NMhdr.idFrom,LongInt(@NMlv));
end;这段代码是向本进程的超级列表视图发送WM_NOTIFY消息,无论跨进程,还是本地均无效。求高人解答?!?

解决方案 »

  1.   


      var
      NMhdr:TNMHdr;
      NMlv:TNMListView;
      i:Integer;
    begin
      NMhdr.hwndFrom:=ListView.Handle;
      NMhdr.idFrom:=GetDlgCtrlID(NMhdr.hwndFrom);
      NMhdr.code:=LVN_DELETEITEM; //NM_CLICK也没有反应;
      NMlv.hdr:=NMhdr;
      NMlv.iItem:=1;
      NMlv.lParam := LongInt(Pointer(ListView.Items[NMlv.iItem]));
      SendMessage(ListView.Handle,WM_NOTIFY,NMhdr.idFrom,LongInt(@NMlv));
    end;
      

  2.   

    NMlv.lParam := LongInt(Pointer(ListView.Items[NMlv.iItem]));虽然代码可以成功执行,但是,为什么要这样做呢?
      

  3.   

    这个结构TNMListView的iItem参数都没有作用的,发送NM_CLICK还是没有任何反应。晕~~~~!
      

  4.   

    你可以跟踪源代码就知道了,最后是通过这个参数找到item的