如何发消息给其他程序syslistview32控件让其选中某一行,现在已经可以获得 syslistview32的句柄 和 他的行总数,就是不知道 发送什么消息让其 某行获得焦点和被选中,还有取消焦点和取消选中。

解决方案 »

  1.   

                      for   I   :=   0   to   vCount   -   1   do   
                          if   Boolean(IntToStr(SendMessage(vHandle,   LVM_GETITEMSTATE,   I,   LVIS_FOCUSED)))   then   
                              {   TODO   :   焦点   };   
        
        
                      for   I   :=   0   to   vCount   -   1   do   
                          if   Boolean(IntToStr(SendMessage(vHandle,   LVM_GETITEMSTATE,   I,   LVIS_SELECTED)))   then   
                              {   TODO   :   选中   };   
    判断倒是知道,让这控件选中某一行的话…………
      

  2.   

    要不你去问问清洁工
    他对这方面似乎很在行
    zswang
      

  3.   

    void ListViewOperator::SetItemSelected( int nItemIndex ) //选中某一个ITEM 

    LVITEMA lvitem; // 静态结构 lvitem.mask = LVIF_STATE; 
    lvitem.iSubItem = 0; 
    lvitem.state = LVIS_SELECTED|LVIS_FOCUSED; 
    lvitem.stateMask = LVIS_SELECTED|LVIS_FOCUSED; int nRet = WriteProcessMemory( m_hProcess, m_pLVItem, &lvitem, sizeof(LVITEM), NULL ); // 将本地进程中的结构写入到目标进程 
    THROW_EXCEPTION( (nRet == 0), "Write Process memory failed" ); HRESULT hRet = SendMessage( m_hwnd, LVM_SETITEMSTATE, (WPARAM)nItemIndex, (LPARAM)m_pLVItem );//发送消息 
    THROW_EXCEPTION( FAILED(hRet), "Send message failed" ); return ; 
    }
    我找到了个c++ 的  不知道谁能给翻译成 delphi的
      

  4.   

    原文转换procedure ListViewOperator.SetItemSelected(nItemIndex: Integer ); //选中某一个ITEM 
    var
      lvitem: LVITEM; // 静态结构 
      nRet: Integer;
      hRet: HRESULT;
    begin
      lvitem.mask := LVIF_STATE; 
      lvitem.iSubItem := 0; 
      lvitem.state := LVIS_SELECTED or LVIS_FOCUSED; 
      lvitem.stateMask := LVIS_SELECTED or LVIS_FOCUSED;   nRet := WriteProcessMemory( m_hProcess, m_pLVItem, @lvitem, sizeof(LVITEM), Nil); // 将本地进程中的结构写入到目标进程 
      Assert( (nRet == 0), 'Write Process memory failed' );   hRet := SendMessage( m_hwnd, LVM_SETITEMSTATE, WPARAM(nItemIndex), LPARAM(m_pLVItem) );//发送消息 
      Assert( FAILED(hRet), 'Send message failed' ); end;