【问题标题】:How can I ensure that a dynamically created Form will be a child window in the process tree of windows?如何确保动态创建的表单将成为窗口进程树中的子窗口?
【发布时间】:2010-11-25 14:05:11
【问题描述】:

我仍在尝试测试我的 WinForm 应用程序,但是一些测试工具不起作用,因为我动态创建的自定义对话框表单不是窗口树中的子窗口(在 Win32 api 意义上)。我正在使用 Spy++ 浏览和搜索窗口。如果我在这些表单上使用 Finder 工具,其中一些会作为桌面窗口的直接子级找到(完全在我的主窗口层次结构之外)。我怎样才能确保它们都在一棵树上?

编辑:显然所有窗口都可以找到,我只需要一直刷新 Spy++ 中的显示即可。

【问题讨论】:

    标签: c# .net winforms user-interface winapi


    【解决方案1】:

    根据定义,常规(非 MDI 子级)窗体是一个以桌面为父级的顶级窗口。因此它们永远不会被视为子窗口(在 Win32 API 意义上),除非您明确使用 SetParent 来更改它(但您可能不应该使用 Form 开头)。

    为什么这种关系对您的测试工具很重要?

    【讨论】:

      猜你喜欢
      • 2016-04-21
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2013-10-21
      • 2011-11-09
      • 1970-01-01
      • 2010-12-16
      相关资源
      最近更新 更多