向本进程窗口中的ListView窗口发送NM_DBLCLK通知(SDK代码)

  1. // 注意这里是向本进程的ListView窗口发送NM_DBLCLK通知,通过WM_NOTIFY消息,WM_NOTIFY不能跨进程,主要是因为SendMessage发送WM_NOTIFY消息最后一个LPARAM参数是个指针。  
  2. // MSDN上有明确说明:For Microsoft Windows 2000 and later systems, the WM_NOTIFY message cannot be sent between processes。  
  3.   
  4. int nId = ::GetDlgCtrlID(HWND_LISTVIEW); // HWND_LISTVIEW为ListView的窗口句柄  
  5.  NMITEMACTIVATE nmitem = {0};  
  6.  nmitem.hdr.code = NM_DBLCLK;  
  7.  nmitem.hdr.hwndFrom = HWND_LISTVIEW;  
  8.  nmitem.hdr.idFrom = nId;  
  9.  nmitem.iItem = 5;  
  10.  nmitem.iSubItem = 1; // 这里模拟点击ListView的第6行第2列  
  11.   
  12.  ::SendMessage(::GetParent(HWND_LISTVIEW), WM_NOTIFY, (WPARAM)nId, (LPARAM)&nmitem); 

你可能感兴趣的:(ListView)