【问题标题】:how to set a Window on the top only one time? [closed]如何只在顶部设置一个窗口? [关闭]
【发布时间】:2013-08-30 09:06:36
【问题描述】:

我正在编写一个程序,它首先使用 JNI 显示 Java GUI,然后调用 Windows 简单 GUI。

如果我调用 Windows 简单 GUI 而不调用 Java GUI,它会显示在其他窗口的顶部,因此我可以在它启动后直接看到它。

问题是,如果我在调用 JAVA GUI 后调用 Windows 简单 GUI,它会在其他窗口的底部显示其窗口简单 GUI:其他 Windows 只是隐藏它。

这是一张图片,您可以看到我的简单 Windows GUI 在启动时已被 Visual Studio 隐藏。

【问题讨论】:

    标签: c++ windows visual-studio winapi mfc


    【解决方案1】:

    我不确定我是否理解了这个问题,但无论如何我都会尝试回答。我的理解是,您正在启动 2 个程序,并且您想将其中一个程序放在桌面的前面。

    我想你正在使用CreateProcess 来启动程序。您可以在 STARTUPINFO 结构 (wShowWindow) 中设置一些标志,所以看看是否可以使用它。

    否则,您可以在启动这两个程序后尝试调用ShowWindow(并可能等待Java 程序启动)。您需要将窗口句柄传递给此函数。

    您可以通过调用EnumWindows获取窗口句柄,使用GetWindowModuleFileName检查每个窗口的可执行文件名。

    伪代码:

    foreach window in EnumWindows()
        if GetWindowModuleFileName(window) == "program.exe"
            ShowWindow(window, ...)
    

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 2017-04-16
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2022-01-07
      相关资源
      最近更新 更多