L
lao9
Unregistered / Unconfirmed
GUEST, unregistred user!
众位高手, 请教一个api问题: <br>delphi4的demos目录下有一个virtuallistview demo, 现在在这个form上<br>添加button1, label1,label2. 并添加如下代码: <br>procedure button1onclick; <br>var hwnd1: Thandle; <br> text1: Pchar; <br>begin <br> hwnd1:= listview.handle; <br> label1.caption:= inttohex(hwnd1,8); <br> getmem(text1,50); <br> listview_getitemtext(hwnd1,0,0,text1,50); <br> label2.caption:= text1; <br> freemem(text1); <br>end; <br>运行这个demo, 按下button1, label1显示其中的listview的handle, <br>该值经winsight32验证是正确的, 同时label2显示出listview的第一个<br>item的名称, 该名称也是正确的.改变listview的item显示, label2的<br>显示也会正确改变. <br><br>现在, 先运行这个demo, 按下button1, label1显示handle, label2<br>显示item的名称. 再运行另外一个程序, 代码类似上一段, 如下: <br>procedure button21onclick; <br>var hwnd21: Thandle; <br> text21: Pchar; <br>begin <br> hwnd21:= 上面demo中的label1的显示值, 即demo中listview的handle; <br> label21.caption:=inttohex(hwnd21,8); <br> getmem(text21,50); <br> listview_getitemtext(hwnd21,0,0,text21,50); <br> label22.caption:= text21; <br> freemem(text21); <br>end; <br>运行后, label21的显示等于label1的显示, 按理label22的显示也应该<br>等于label2的显示, 但实际上label22显示的是乱七八糟的字符, 根本<br>与label2的显示不同,跟踪发现text21的内容与getmem时的一样,根本<br>没有改变; <br>请教, text21为何不能正确改变, 为何对同一程序中的listview用<br>getitemtextAPI函数能正常工作,而对另一程序中已知handle的<br>listview用getitemtextAPI函数就不能正常工作。 <br>即如何在自己的程序中写代码, 获得另一个应用程序中, 已知<br>handle的listview 中的item的名称? 谢谢! <br><br><br> <br><br>