使用EnumChildWindows()函数查找子窗口句柄时,怎么区别标题相同类型一样的子窗口?(100分)

  • 主题发起人 主题发起人 satanmonkey
  • 开始时间 开始时间
S

satanmonkey

Unregistered / Unconfirmed
GUEST, unregistred user!
比如有个程序,有很多TEdit 标题都是空的?我怎么才能找到我想要的哪个TEdit的句柄?
 
GetWindowRect进行位置判断啊!重要有个条件把,要不然我怎么知道你找哪一个!
 
GetEnumName()可以得到枚举类型的声明名称.
 
我只知道窗口类型和出口的标题。
但同样条件的子窗口有好多。位置应该也知道。具体该怎么做才能找到我想要的哪个子窗口的句柄?
比如一字排开有3个TEdit,个个的标题都是空,我想要第二个的句柄,该怎么办呢?
 
怎么会设计出这样的程序
该该方法吗
 
我可不是要设计这种程序,只是我的问题和这个等价,这个会做了,我的问题也解决了。
 
找到句柄后用GetWindowRect取得控件的位置,然后再根据位置判断
你总要有东西可以判断才行的
如果你的多个EDIT又是叠在一起的话,那就没有办法了。[:)]
 
我查了几天资料,好象可以根据控件ID来区别,请问怎么实现?
 
除非是你自己的程序,你才知道控件ID -_- 这样的话,还不如直接设置程序的控件tag属性.这样就很好判断乐.
 
 这个问题你可以这样解决,不知道符合不符合理论,不过我用这种方法确实还没有
出过错。实现很简单
  就是定义两个全局变量,即一个计数器(integer)与一个名柄。EnumChildWindows()函数
对一个窗口中的子窗口的访问顺序是固定的,在自己回调函数里给计数器计数,当计数器到
指定值(即你所要的子窗口)时,便给全局变量句柄赋枚举函数传来句柄值,即为你所想要的。
这个子窗口被第几次调用你可以用一个MEMO组件来测试获得!
 
多人接受答案了。
 
后退
顶部