读书人

怎么发消息给其他程序syslistview32控

发布时间: 2012-06-20 20:37:21 作者: rapoo

如何发消息给其他程序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 : 选中 };
判断倒是知道,让这控件选中某一行的话…………
[解决办法]
原文转换

Delphi(Pascal) code
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; 

读书人网 >.NET

热点推荐