如何通过句柄读取TLISTBOX(的内容-500分,不够再加 ( 积分: 100 )

  • 主题发起人 主题发起人 蓝叶菱
  • 开始时间 开始时间

蓝叶菱

Unregistered / Unconfirmed
GUEST, unregistred user!
一个另外应用程序,有一个列表。我通过<br>function&nbsp;EnumChildWindowsProc(hwnd,lparam:integer):Boolean;stdcall;取得了它的句柄和名称,显示为TListBox,句柄为583788。<br>&nbsp;&nbsp;mStrings.Clear;<br>&nbsp;&nbsp;&nbsp;&nbsp;vItemCount&nbsp;:=&nbsp;SendMessage(mHandle,&nbsp;LB_GETCOUNT,&nbsp;0,&nbsp;0);<br>&nbsp;&nbsp;&nbsp;&nbsp;for&nbsp;I&nbsp;:=&nbsp;0&nbsp;to&nbsp;vItemCount&nbsp;-&nbsp;1&nbsp;do<br>&nbsp;&nbsp;&nbsp;&nbsp;begin<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;SetLength(S,&nbsp;SendMessage(mHandle,&nbsp;LB_GETTEXTLEN,&nbsp;I,&nbsp;0));<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;SendMessage(mHandle,&nbsp;LB_GETTEXT,&nbsp;I,&nbsp;Integer(@S[1]));<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;mStrings.Add(S);<br>&nbsp;&nbsp;&nbsp;&nbsp;end;<br>&nbsp;&nbsp;&nbsp;&nbsp;SetLength(S,&nbsp;0);<br>&nbsp;&nbsp;finally<br>//以上的函数对于标准的TListBox没有问题,可是对于我的,只能读取LB_GETCOUNT的信息,也就是List的数量,但是内容不能读取。<br>我仔细看了一下,应该不完全是TListBox,因为每个行的每个字都有颜色,而且颜色不同,标准的不具备该功能,我怀疑不是TListBox,应该是TListView.最后我感觉确认的该控件应该还是TListBox,最后使用CANVAS直接绘图每个字,这样可能颜色不同,每行不同的效果。<br>我查过2ccc.com的例子有绘图的例子,但是没有怎么读取另外程序的例子。<br>我是使用WinSnight32或者spy查到,都显示是TListBox,,,,,,,,,,,,,,
 
你不会用&nbsp;Spy&nbsp;查看一下啊,是&nbsp;listview&nbsp;还是&nbsp;listbox,啊?
 
我是使用WinSnight32或者spy查到,都显示是TListBox,,,,,,,,,,,,,,
 
我模拟出原代码如下:<br>http://www.delphibbs.com/delphibbs/dispq.asp?lid=3859968<br>各位试试看。。
 
TListBox只是ClassName,&nbsp;不能说明任何问题.&nbsp;如果你需要你也可以随意设置你的Control的ClassName.<br><br>如果要实现的是一个通用的读取ListBox的模块,&nbsp;不太现实.<br>如果只是想实现自己的程序用句柄读取自己的的ListBox,只需要消息+指针就可以实现了.
 
后退
顶部