0

我有一个 IEView,它有许多 IEWindows,每个 IEWindow 都有一个 IETab,每个 IETab 都有选项卡的窗口句柄和该选项卡的 url。

我目前使用

 WindowStateChanged(uint dwWindowStateFlags, uint dwValidFlagsMask)

知道标签何时更改。我无法弄清楚的是在启动时已经存在 IE,当前活动选项卡是什么?如果我可以获取活动 url,我可以找到活动选项卡,或者如果我可以获取活动选项卡窗口句柄,我可以获取活动选项卡。也许我应该爬树并尝试 getSelectedTabIndex 以确定活动选项卡,因为我知道我的 IETabs 是按照它们在 IE 中的确切顺序添加的,我认为这很有趣,可能不是巧合。

有谁知道怎么做

  1. 获取活动标签句柄或
  2. 获取活动标签的网址,以便我可以查找标签或
  3. 我将如何获取选项卡控件并获取所选选项卡的索引
  4. 或者也许找到焦点 IntPtr 句柄,因为此时窗口正在成为焦点,并希望选项卡被认为是焦点?

谢谢,院长

4

1 回答 1

0

嗯,我不确定这是否正确,但使用 Winspy++ 选择的选项卡始终是组件列表中的最后一个 Classname=FrameTab。当我切换选项卡时,列表的顺序会发生变化,并且所选的总是最后一个。这适用于 IE 9...不确定其他版本。

所以,我认为使用选项卡中的 IntPtr 句柄,我可以上树到 Classname=IEFrame 并获取它的子类 Classname=FrameTab 类型,最后一个是选定的选项卡。

于 2012-08-31T22:33:39.583 回答