如何取得窗体中的Activex控件的句柄?

lfm09 2007-12-18 12:36:47
窗体中使用了一个Activex控件,但这个控件却没有hwnd属性,怎样才能取得它的句柄呢?
...全文
170 10 打赏 收藏 转发到动态 举报
写回复
用AI写文章
10 条回复
切换为时间正序
请发表友善的回复…
发表回复
lfm09 2007-12-20
  • 打赏
  • 举报
回复
解决了,通过FindWindowEx解决的
lfm09 2007-12-19
  • 打赏
  • 举报
回复
再说清楚一点,层次是这样的:自己做的窗体A(第1级),窗体包含了这个Activex控件B(第2级,没有hwnd属性,没有Click方法),这个控件内又包含了一个控件C(这个C没办法通过B引用取得),而我真正要的是C中的Click事件。

我用SPY++查了一下,可以看到控件C的ClassName和Caption,但是没找到(或者说没办法确认)控件B的信息。

好像FindWindowEx和EnumChildWindow没办法取得窗体A的子窗口(B)中的孙窗口(C)吧?
Tiger_Zhao 2007-12-19
  • 打赏
  • 举报
回复
你先用Spy++确认一下,运行时该控件是真的没句柄还是没有提供hwnd属性。
如果是没提供hwnd属性,可以通过FindWIndow或EnumChildWindow找到该句柄;
如果是的确无句柄控件(Forms 2.0 中的控件),没辙。
lfm09 2007-12-19
  • 打赏
  • 举报
回复
主要是使用到的这个控件既没有hwnd属性,又没有Click()事件方法。我想捕捉它的鼠标单击事件,有办法吗?
lfm09 2007-12-19
  • 打赏
  • 举报
回复
我现在就想直接操作控件C,因为B上没有焦点,焦点在C上
Tiger_Zhao 2007-12-19
  • 打赏
  • 举报
回复
你钱包里有张银行卡,卡有一个对应密码。财务给你的卡上划工资,需不需要你的卡?还是需要你的密码?
lfm09 2007-12-19
  • 打赏
  • 举报
回复
C也是一个控件,问题是B和C都没有Click事件和hwnd方法,B可能通过A.来引用,而C没办法通过B.来引用
Tiger_Zhao 2007-12-19
  • 打赏
  • 举报
回复
那么C就是画出来的,你只能用B的Click按照位置计算是否点击在C上。
lfm09 2007-12-18
  • 打赏
  • 举报
回复
api,具体怎么做啊?
lzn3303768 2007-12-18
  • 打赏
  • 举报
回复
api

1,453

社区成员

发帖
与我相关
我的任务
社区描述
VB 控件
社区管理员
  • 控件
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧