Programación de escalamiento local
Debido a que la eficiencia de dibujo del tablero de dibujo es relativamente baja, ¡algunas imágenes grandes pueden quedar atascadas!
Preste atención al foco de la ventana al colocar otros componentes. Si el foco no está en la ventana de inicio, el evento de hacer girar la rueda de la ventana de inicio no será válido.
Versión 2. Biblioteca de soporte eAPI
. Conjunto ventana conjunto 1
. Fondo variable de ensamblaje, mesa de trabajo
. Reúna números de imágenes variables
. Valor de escala x de la variable de ensamblaje, decimal.
. Valor de escalamiento de variable de ensamblaje y, tipo decimal
. Variable ensambladora x, tipo entero
. Variable ensambladora y, tipo entero
. Las variables de ensamblaje son móviles y lógicas.
. Subrutina_ _StartWindow_Created
Borde=0
Copiar componente de ventana (Mesa de trabajo1, Fondo)
Mesa de trabajo1. Mover (0, 0, obtener el ancho del área de usuario (), obtener la altura del área de usuario ())
Fondo. Mover (0, 0, obtener el ancho del área de usuario (), obtener la altura del área de usuario ())
Mesa de trabajo 1. autoredraw=true
Backend. autoredraw=true
Diálogo general 1. Filter = "Archivo de imagen |*.jpg*.bmp*.gif*.ico "
Valor de escala x = 1
Valor de escala y = 1
Se hizo doble clic en Subroutine_Paint1_, tipo lógico.
. Parámetro posición horizontal, tipo entero
. Posición vertical del parámetro entero
Estado de la tecla de función del parámetro, tipo entero
. if true(Diálogo general 1. Abrir())
Número de imagen = Imagen cargada(Diálogo general 1. Nombre de archivo)
Dibujar()
Si realmente terminó .
Dibujo de subrutinas, tipo lógico
. Variables locales htkd
. Variable local htgd
. Si es verdadero (número de imagen = 0)
Devolver (falso)
Si es verdadero, se acabó.
Htkd = valor de escala x fondo. Obtenga el ancho de la imagen (número de imagen).
Htgd = valor de escala Y × fondo. Altura de la foto (número de imagen).
Mesa de trabajo 1. mover(0, 0, htkd, htgd)
Fondo. mover(0, 0, htkd, htgd)
Fondo. Hacer dibujos (número de imagen, 0, 0, htkd, htgd,)
Backend. Copiar (,,, Mesa de trabajo 1, 0, 0,)
Mover (,, htkd, htgd)
Regresar (Verdadero)
Subrutina_Mesa de trabajo 1_Botón izquierdo del mouse presionado, tipo lógico
. Parámetro posición horizontal, tipo entero
. Posición vertical del parámetro entero
Estado de la tecla de función del parámetro, tipo entero
Enviar información (161, 2, 0)
X = posición horizontal
Y = posición vertical
Moveable=True
CaptureMouse(Artboard1. GetWindowHandle())
. Subrutina_Sketchpad 1_Soltar botón izquierdo del ratón, tipo lógico
. Parámetro posición horizontal, tipo entero
. Posición vertical del parámetro entero
Estado de la tecla de función del parámetro, tipo entero
Soltar mouse () mover = false
Subrutina_Sketchpad 1_Posición del mouse mover, tipo lógico
. Parámetro posición horizontal, tipo entero
. Posición vertical del parámetro entero
Estado de la tecla de función del parámetro, tipo entero
Si es verdadero (móvil)
Izquierda = Obtener la posición horizontal del mouse () - INCÓGNITA.
Borde superior = toma la posición vertical del mouse ()-y.
Si realmente se acabó.
.
Subrutina_ _ Ventana de inicio _ Se desplaza la rueda, tipo lógico
Distancia de desplazamiento del parámetro, tipo entero
Estado de la tecla de función del parámetro, tipo entero
Valor de escala x = zoom valor x+distancia de desplazamiento×0,1.
Valor de escala y = valor de escala y + distancia de desplazamiento × 0,1.
Si es verdadero (valor de escala x < 0,1)
Valor de escala x = 0,1
Si es verdadero, se acabó.
. Si es verdadero (valor de escala x > 5)
Valor de escala x = 5
Si es verdadero, se acabó.
Si es verdadero (valor de escala y < 0,1)
Valor de escala y = 0,1
Si es verdadero, se acabó.
. Si es verdadero (valor de escala x > 5)
Valor de escala y = 5
Si es verdadero, se acabó.
Draw()
Texto de depuración de salida (valor de zoom x)