【问题标题】:How to get handle of a checkbox on TAB control. Win32 VC++如何处理 TAB 控件上的复选框。 Win32 VC++
【发布时间】:2014-01-27 05:34:40
【问题描述】:

我创建了一个包含 3 个选项卡的 TAB 控件。在第三个选项卡中,有一个复选框,我想在运行时从其他应用程序获取此复选框的句柄。从外部应用程序我得到 TAB 控件的句柄。但是如何在这个 TAB 控件的第三个选项卡上处理复选框。

【问题讨论】:

  • 你的意思是TabControl?在 winforms 中获取句柄就像Control.Handle 一样简单。 外部应用程序是什么意思?您是否有可视 c++ 窗口并试图将复选框的句柄传递给 winform/console/wpf c# 应用程序或反之亦然?
  • 是的,复选框位于 TabControl 上。此选项卡控件位于 vc++ 应用程序中。我想从 C# 应用程序中获取复选框的句柄。我能够得到 TabControl 的句柄,但我无法得到复选框的句柄。
  • 如果您知道复选框 (Spy++) 的控件 ID 并且选项卡控件是其父级,那么您可以调用 GetDlgItem(parent, ctrlID) 或 C# equiv。

标签: c# winapi visual-c++


【解决方案1】:

EnumChildWindows?

如果应用程序是在 WPF 等非 Win32 框架中编写的,则可能会出现一些复杂情况,因为它们并不总是使用 Win32 子控件。在那种情况下,Windows Automation 是我所知道的唯一跨框架 API (YMMV)。

如果您使用的是 Visual Studio(不是 Express)并且您不熟悉 Spy++,那么启动它并试一试——如果没有别的,这很有趣,它让您探索数量惊人的窗口存在。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2017-03-31
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多