¡Ingrese el código vb original para explicar la función!
Función de declaración privada GetClientRect Lib "user32" (ByVal As Long, lpRect As RECT) As Long 'la función api declara que la función de GetClientRect es devolver RECT en forma de identificador hwnd (es decir, la parte superior, inferior, izquierda, derecha y el tamaño del borde. Espera, no puedo encontrar las palabras correctas para explicarlo, jaja)
Tipo privado RECT 'No hay forma de definir RECT, VB puede solo define esto a través de sus propias declaraciones
Izquierda mientras
Arriba mientras
Derecha mientras
Abajo mientras
Abajo mientras
Abajo mientras
Abajo mientras
p>
End Type
Private Sub aaa_Click() 'Evento independiente de Aaa, pero desafortunadamente, está vacío
End Sub
Private Sub MDIForm_ Resize () 'Cuando el formulario principal de MDI cambia de tamaño, como maximizar, minimizar, arrastrar y soltar la esquina inferior derecha, etc.
'Ajusta el tamaño del formulario donde se encuentra el formulario.
Dim ClientRect As RECT 'Definir variable RECT
GetClientRect Me hwnd, ClientRect 'Obtiene la forma rectangular de la ventana actual, colócala en ClientRect y guárdala, debes usarla. más tarde
p>
FrmMenu.Move 0, 0, 15 * (ClientRect.Right - ClientRect.Left), 15 * (ClientRect.Bottom - ClientRect.Left), 15 * (ClientRect.Bottom - ClientRect.Bottom), 15 * (ClientRect.Bottom - ClientRect.Left).Bottom - ClientRect.Top) 'Mover el formulario frmMenu al tamaño de la capa interna del MDI
15 se debe a el valor predeterminado en vb, suponiendo que la configuración de pantalla sea 800*600, el marco real es 800*15 o 600*15. ¡No sé cómo expresarlo!
FrmMenu.Visible = True 'Mostrar FrmMenu
End Sub
Módulo de clase
Módulo 6
Clsmenuitem
'¡A continuación la afirmación de algunos miembros de la clase! Oh, en realidad todos son públicos****....
Secuencia pública como número entero
Título público como cadena
Formulario público o lista de menús como booleano
p>
SubMenulist público como ClsMenuList
Enlace público como formulario
Private Sub Class_Initialize() 'Función de inicialización de clase
End Sub
Módulo 7
Clsmenulist
A continuación declararemos varios miembros de la clase, esta vez todos privados
Privado mvarFatherMenuList As ClsMenuList 'Copia local
MvarTitle privado como cadena 'Copia local
MvarMenuItemNumber privado como número entero 'Copia local
MvarMenuItemNumber privado como textoCopia local
MvarMenuItemNumber privado como número entero copia local
MvarMenuItem privado (1 a 10) como copia local de ClsMenuItem
mvarCurrentPos privado como copia local de entero
Sub IniMenuList público (vTitle como cadena, vFatherMenulist como ClsMenuList) '
Una forma de ver esto es obtener un miembro privado, puedes llamarlo propiedad jajaja
mvarTitle = vTitle
Set mvarFatherMenuList = vFatherMenulist
End Sub
Sub AddMenuItem público (vCaption como cadena, vSeq como entero, vLink como variante) 'o método. ...........
mvarMenuItemNumber = mvarMenuItemNumber 1
Establecer mvarMenuItem(mvarMenuItemNumber) = Nuevo ClsMenuItem
mvarMenuItem( mvarMenuItemNumber).caption = vCaption
mvarMenuItem(mvarMenuItemNumber).seq = mvarMenuItemNumber
Si TypeOf vLink es formulario, entonces
mvarMenuItem(mvarMenuItemNumber).SubMenulist = vLink
End If
End Sub
Propiedad pública Let CurrentPos(ByVal vData As Integer) 'En el bloque de clase, declara el nombre, parámetros, código, etc. En el bloque de clase , declare Nombre, parámetros, código, etc., para formar el cuerpo del procedimiento de propiedad para la asignación (configuración).
mvarCurrentPos = vData
End Property
Propiedad pública Get CurrentPos() As Integer 'En el bloque de clase, declara la propiedad utilizada para obtener (devolver) el valor El nombre, parámetros y código del proceso, etc.
CurrentPos = mvarCurrentPos
Propiedad final
Propiedad pública Obtener MenuItem(Index As Integer) As ClsMenuItem 'En el bloque de clase, declarado para obtener (devolver) valor Propiedades El nombre, los parámetros y el código del cuerpo del procedimiento.
Establecer MenuItem(Index As Integer) As ClsMenuItem 'En el bloque de clase, declare el nombre, los parámetros y el código del cuerpo del procedimiento de propiedad utilizado para obtener (devolver) el valor.
Establecer MenuItem = mvarMenuItem(Index)
Propiedad final
Propiedad pública Obtener MenuItemNumber() Como entero debe ser claramente visible
MenuItemNumber = mvarMenuItemNumber
Propiedad final
Propiedad pública Obtener título() como cadena
Título = mvarTitle
Propiedad final
Propiedad pública Obtener FatherMenuList() como ClsMenuList
Establecer FatherMenuList = mvarFatherMenuList
Propiedad final
Private Sub Class_Initialize() 'Inicialización de clase
mvarMenuItemNumber = 0
mvarCurrentPos = 1
End Sub