Vb6 如何将应用程序推向前台?

Vb6 如何将应用程序推向前台?,vb6,Vb6,当前复制并修改同一程序中的一部分代码,以创建一个按钮,单击该按钮将使Vision应用程序出现在GUI的前面 创建了一个名为“btVisionCam_Click()的按钮” 宣布“私人lVideo尽可能长” CEIVidCap是打开GUI时在GUI后面运行的Vision应用程序 专用子btVisionCam\u单击() 如果btVisionCam.Value=1,则 lVideo=FindWindow(vbNullString,“CEIVidCap”) 如果lVideo=0,则 lVideo=

当前复制并修改同一程序中的一部分代码,以创建一个按钮,单击该按钮将使Vision应用程序出现在GUI的前面

  • 创建了一个名为“btVisionCam_Click()的按钮”
  • 宣布“私人lVideo尽可能长”
  • CEIVidCap是打开GUI时在GUI后面运行的Vision应用程序
专用子btVisionCam\u单击()
如果btVisionCam.Value=1,则
lVideo=FindWindow(vbNullString,“CEIVidCap”)
如果lVideo=0,则
lVideo=Shell(“C:\machine\appls\CEIVidCap.exe”,vbNormalFocus)
如果结束
如果结束
端接头

单击按钮时,它不会将Vision应用程序带到GUI的前面。请帮忙,谢谢

创建一个模块并复制以下声明:

Declare Function FindWindow Lib "user32" Alias "FindWindowA" (ByVal lpClassName As String, ByVal lpWindowName As String) As Long
Declare Function ShowWindow Lib "user32" (ByVal hwnd As Long, ByVal nCmdShow As Long) As Long
然后,在您的按钮中,使用
FindWindow
获取窗口句柄,并使用
ShowWindow
将其调出:

Dim lnghWnd As Long

lnghWnd = FindWindow(vbNullString, "CEIVidCap")
ShowWindow lnghWnd, 1

ShowWindow
nCmdShow
参数支持的值:

SW_HIDE = 0
Hide the window.
SW_MAXIMIZE = 3
Maximize the window.
SW_MINIMIZE = 6
Minimize the window.
SW_RESTORE = 9
Restore the window (not maximized nor minimized).
SW_SHOW = 5
Show the window.
SW_SHOWMAXIMIZED = 3
Show the window maximized.
SW_SHOWMINIMIZED = 2
Show the window minimized.
SW_SHOWMINNOACTIVE = 7
Show the window minimized but do not activate it.
SW_SHOWNA = 8
Show the window in its current state but do not activate it.
SW_SHOWNOACTIVATE = 4
Show the window in its most recent size and position but do not activate it.
SW_SHOWNORMAL = 1
Show the window and activate it (as usual).

尝试将其设置为前景窗口

将此添加到其他API调用:

Declare Function Win32_SetForegroundWindow Lib "user32" _
    Alias "SetForegroundWindow" ( _
    ByVal hWnd As Long) _
As Long
然后添加:

Dim Ret As Long
Ret = Win32_SetForegroundWindow(lnghWnd)
If Ret Then
    ' Your window should be foreground
End If

请使用您当前的代码更新您的问题,以便我们能够帮助您排除故障HiÉtienne Laneville,代码仍然不起作用。。当我单击btVisionCam按钮时,CEIVidCap窗口不会显示在GUI前面。需要指出的另一点是,当GUI打开时,CEIVidCap窗口已经最大化,并在GUI后面运行。希望有人能帮助我,使它显示在前面的图形用户界面时,按钮被按下。。