向一个外部程序的treeview句柄发送tvm_getcount,返回值是0。代码为:i:=sendmessage(Hwnd,tvm_getcount,0,0);
showmessage(inttostr(i))这条代码可以执行,在内部程序本身可以得到tvm_getcount的正确个数.但是,外部程序 返回值总是0。到底怎么解决呢???
showmessage(inttostr(i))这条代码可以执行,在内部程序本身可以得到tvm_getcount的正确个数.但是,外部程序 返回值总是0。到底怎么解决呢???
你的i定义在内部程序?然后你在外部程序showmessage(inttostr(i)));
是这样的吗?
如果是我猜对这样,那么只能告诉你此i非彼i,而且你在外部程序中定义的i是个全局的变量吧?
那当然是i:=0了。
切确的还是需要你给点代码,那样比较好。
i:=sendmessage(Hwnd,tvm_getcount,0,0);
showmessage(inttostr(i))
var
myhandle:hwnd;
i:integer;
begin
myhandle:=findwindow(nil,'xx'); //xx是你那个外部程序窗口名称
myhandle:=findwindowex(myhandle,0,'TTreeView',nil); //具体我就不解释参数了
i:=sendmessage(myhandle,tvm_getcount,0,0);
showmessage(inttostr(i))
end;
刚试的。可以获取。
tvm_getcount属于windows控件消息范畴,而你的却是一个自定义的类,唉,不说了。
期待高手。