如何发消息给其他程序syslistview32控件让其选中某一行
如何发消息给其他程序syslistview32控件让其选中某一行,现在已经可以获得 syslistview32的句柄 和 他的行总数,就是不知道 发送什么消息让其 某行获得焦点和被选中,还有取消焦点和取消选中。
[解决办法]
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 : 选中 };
判断倒是知道,让这控件选中某一行的话…………
[解决办法]
原文转换
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;