注册 登录
编程论坛 Delphi论坛

如何取得第三方程序列表控件中TdxTreeList的内容?

后天花园 发布于 2010-03-04 20:06, 2478 次点击
我有一个程序

想得到另一个用dephi写的程序中的

"TDXTreeList"的文字内容

应该怎么做?

谢先了!

5 回复
#2
mohao1632010-03-05 12:46
什么意思,读取别的程序中的内容么?先用findwindow函数获取那个程序句柄,然后再用一个API找到里边的TdxTreeList控件,具体哪个API我也不记得了,要看到自己的代码才行。你可以百度下
如果两个程序都是你写的,你可以用消息的方式在两个程序中通信
#3
后天花园2010-03-05 22:44
回复 2楼 mohao163
有TdxTreeList控件的那个程序不是我写的,是别人的程序。

-----------------------------------------------------------------------------

我是用FindWindow(...) API 来得到控件窗口的句柄的。

对于标准的控件很容易得到其中的内容。譬如,对于CEdit控件:

  HWND   hEditView   =   ::FindWindowEx(hWnd,   NULL,   "Edit",   NULL);

  CEditView   EditView;  
  EditView.Attach(hEditView);  

  char szBuf[200] = {0};
  CEdit&   theEdit  =  EditView.GetEditCtrl();
  ::SendMessage(theEdit.m_hWnd,   WM_GETTEXT,100,(DWORD)szBuf);   //  

  MessageBox(szBuf);

  EditView.Detach();

-----------------------------------------------------------------------------

Dephi 的 TdxTreeList是由多个类派生出来的,用上面或其他的方法无法取得内容。

不知道应该如何作。



[ 本帖最后由 后天花园 于 2010-3-5 22:46 编辑 ]
#4
mohao1632010-03-06 15:31
这个我也不清楚了,好久没这么做了。要我做的话也和你思路差不多,你用VC里面那个什么工具查看窗体类了也不能获取么?你去搜一下QQ尾巴原理,应该是差不多的技术
#5
后天花园2010-03-06 18:07
回复 4楼 mohao163
恩。好象和QQ尾巴有点像,但有不完全一样。

QQ窗口用的是ATL技术,还是可以枚举子窗口的。

而TdxTreeList下面就再没有子窗口了,像TPanel, TStringGrid,根据网上说也没有正规的办法得到其中的内容?
#6
mohao1632010-03-09 11:17
这个不知道了,TdxTreeList貌似不是默认控件,是第三方的。没有用过,不知道它继承的是什么类
1