Red de conocimiento informático - Problemas con los teléfonos móviles - Después de que vb configura un programa como un subformulario de otro programa a través de un identificador, el identificador cambia ¿Cómo obtengo el nuevo identificador del programa en el formulario principal?

Después de que vb configura un programa como un subformulario de otro programa a través de un identificador, el identificador cambia ¿Cómo obtengo el nuevo identificador del programa en el formulario principal?

También tengo varias pruebas para demostrar que estás equivocado, como el siguiente código: Private?Declare?Function?SetParent?Lib?"user32"?(ByVal?hWndChild?As?Long,?ByVal ?hWndNewParent?As ?Long)?As?Long

¿Privado?Declarar?Función?FindWindow?Lib?"user32"?FindWindowA"?(ByVal?lpClassName?As?String,?ByVal?lpWindowName?As ?String)? As?Long

Dim?oParent?As?Long, ?npad?As?Long?'oParent es el identificador de la ventana principal original, npad es el identificador del bloc de notas

Dim?npad?As ?Long?'oParent es el identificador de la ventana principal original, npad es el identificador del Bloc de notas

Private?Sub?Command1_Click()

Shell?"notepad.exe" ,?vbNormalFocus'Abrir Bloc de Notas

Fin?Sub

Privado?Sub?Command2_Click()

Privado?Sub?Command2_Click()

Shell?"Notepad. exe", npad?Click()

npad?=?FindWindow(vbNullString,?" ¿Untitled? -? Notepad")?Obtener el identificador del Bloc de notas

oParent?=?SetParent( npad,?Me.hWnd) 'Establecer el Bloc de notas como su propia subventana

End?Sub

Privado?Sub?Command3_Click()

SetParent? npad,?oParent? 'Restaurar el Bloc de notas como ventana de escritorio. Tenga en cuenta que el identificador utilizado sigue siendo el mismo.

End?Sub

¡La conclusión es que cuando cambia! una ventana Cuando un formulario se utiliza como subformulario de otro formulario, el identificador del formulario no cambiará. Debido a que el identificador es el "ID" único del formulario en la memoria, si se puede cambiar a voluntad, el sistema operativo lo hará. no podrá controlarlo de manera efectiva.

La única situación en la que se cambiará el identificador es descargar primero el formulario y luego cargarlo. Esto equivale a volver a crear una nueva ventana, pero es la original. La identidad del subformulario también se liberará automáticamente.

Vale la pena señalar que cuando convierte un formulario en un formulario secundario de otro formulario, no puede encontrarlo en el escritorio a través de la ventana Buscar, debe encontrar su nuevo formulario principal y luego recorrer sus subformularios hasta encuéntrelo, preferiblemente usando la ventana Buscar Ex.