【问题标题】:Debugging "crashed" top most window调试“崩溃”最顶部的窗口
【发布时间】:2013-12-27 14:39:47
【问题描述】:

我的应用程序必须在最顶部的窗口中运行。它工作得很好,直到它崩溃。当它崩溃时窗口变为白色,并且窗口崩溃窗口显示询问您是否要调试它。

在那一刻,我想使用该选项来调试该应用程序。但由于最上面的窗口崩溃了,我什么也看不到。

如果没有最顶层的窗口,我无法运行应用程序。我无法在应用程序运行时将调试器附加到应用程序。我唯一的可能是在崩溃后附加调试器。但后来我什么都看不到了。

有没有办法“隐藏”崩溃的最顶层窗口?

更新: 我正在使用 WinApi。

【问题讨论】:

  • 调试 UI 的程序员使用两个监视器。如果你只有一个,你可以使用远程调试器。
  • 您的问题的问题(以及除了菜鸟之外没有人回答您的原因)是您没有指定任何内容。您使用的是标准 C++ 吗?在这种情况下,您是使用 Qt 之类的 GUI 框架,还是直接使用 Win32 API?请更具体,编辑您的问题并向我们展示更多背景信息。
  • “它运行良好,直到它崩溃。”
  • 在调试会话期间,您的应用程序必须使用最顶层的窗口没有任何合乎逻辑的理由。这似乎是一种自我强加的约束,老实说,这没有任何意义。
  • @CaptainObvlious 它是在其他应用程序窗口上方运行的透明覆盖。我不想详细说明为什么会这样。但是没有办法让这个应用程序运行不最高。

标签: c++ visual-studio debugging


【解决方案1】:

您可以使用ShowWindow(HWND,int) 隐藏窗口:

如果你有窗口的句柄:

ShowWindow(hwnd, SW_HIDE);

如果你只知道标题:

HWND hwnd = FindWindowA(NULL,"Title");
ShowWindow(hwnd, SW_HIDE);

所以当你想做某事但崩溃的窗口挡住了路时,运行这些命令来隐藏它。

【讨论】:

  • 窗口崩溃了。它无法处理消息。
  • 你不能把你正在处理的窗口放在前面,而另一个窗口已经崩溃了吗?
  • 尝试将 VS 窗口改为 from 并不是一个坏主意。
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2011-03-20
  • 1970-01-01
  • 1970-01-01
  • 2020-08-03
  • 1970-01-01
相关资源
最近更新 更多