Bueno la cosa va asi.Tienes que poner que la ventana del msgbox en el top de la aplicacion,por encima de la principal.Para ello necesitas saber el hwnd de la ventana del msgbox,el cual tendrias que recoger con una APi.Pero es mucho mas facil que te crees un formulario de Salida en vez del msgbox ,ya que de este si tienes el hwnd.
Y entonces llamas a la siguiente APi:
res = SetWindowPos(formulario.hwnd, HWND_TOPMOST, 0, 0, 0, 0, SWP_FLAGS)
te digo los posibles parametros :
Const SWP_size = 1
Const HWND_BOTTOM = 1 'Coloca la venta al final de la lista
Const HWND_TOP = 0 'Coloca la ventana al inicio del orden
Const HWND_TOPMOST = -1 'Coloca la ventana al inicio del orden por encima de todo
Const HWND_NOTOPMOST = -2 'Coloca la ventana al inicio del orden detras de las ventanas de nivel superior
Const SWP_HIDEWINDOW = &H80 'Esconde la ventana
Const SWP_NOACTIVATE = &H10 'No activa la ventana
Const SWP_NOMOVE = &H2 'Mantiene la posición Actual
Const SWP_NOREDRAW = &H8 'La ventana No se redibuja automáticamente
Const SWP_NOSIZE = &H1 'Mantiene el tamaño vigente
Const SWP_NOZORDER = &H4 'Mantiene la posición vigente en la lista de ventanas
Const SWP_SHOWWINDOW = &H40 'Presenta en pantalla la ventana
'Para mantenerlo siempre visible
Const SWP_FLAGS = SWP_NOMOVE Or SWP_NOSIZE Or SWP_SHOWWINDOW Or SWP_NOACTIVATE
Y en Aceptar cierra la ventana con la misma Api cambiandole las propiedades.
No se si te podra servir.Pruebalo.
¿Me podrias decir como sabe la aplicacion principal que se ha cerrado la que esta en segundo plano, o es que la cierras tu desde la principal?