如何只在顶部设置一次窗口?

时间:2013-08-30 09:06:37

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

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

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

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

这是一张图片,你可以看到我的简单Windows GUI在启动时被visual studio隐藏了。

enter image description here

1 个答案:

答案 0 :(得分:0)

我不确定我是否明白这个问题,但无论如何我都会尝试回答。我的理解是你正在推出2个程序,你想把它们中的一个带到桌面的前面。

我认为您正在使用CreateProcess来启动程序。您可以在STARTUPINFO结构( wShowWindow )中设置标记,因此请查看是否可以使用该标记。

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

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

伪代码:

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