La idea del código de escalar imágenes en idioma Yi. ¿Puede funcionar el tablero de dibujo? La imagen cambia completamente con el tamaño del (¿componente?). marco.
¡Se te proporciona todo el código fuente, similar a la ventana de chat de QQ!
Debido a la eficiencia de dibujo relativamente baja de la mesa de trabajo, ¡algunas imágenes grandes pueden quedar atascadas!
Al colocar otros componentes, preste atención al foco de la ventana. Si el foco no está en la ventana _start, el evento _start window_wheel is roll no será válido.
Versión 2. Biblioteca de soporte eAPI
Ensamblaje de ventana de ensamblaje 1
Fondo de variable de ensamblaje, bloc de dibujo
. número
Valor de escala de variable ensamblador X, tipo decimal
Valor de escala de variable ensamblador Y, tipo decimal
. >
Variable de ensamblaje y, tipo entero
La variable de ensamblaje se puede mover, tipo lógico
Subrutina __start window_Creada
Borde = 0<. /p>
Copiar componente de ventana (mesa de trabajo 1, fondo)
Mesa de trabajo 1. Mover (0, 0, obtener ancho del área de usuario (), obtener altura del área de usuario ())
Background.Move (0, 0, Obtener ancho del área de usuario (), Obtener altura del área de usuario ())
Tablero de dibujo 1. Redibujado automático = Verdadero
Background.Autoredraw = Verdadero
Cuadro de diálogo común 1. Filter="Archivo de imagen|*.jpg;*.bmp;*.gif;*.ico ”
Valor de escala >.Posición horizontal del parámetro, tipo entero
.Posición vertical del parámetro, tipo entero
.Estado de la tecla de función del parámetro, tipo entero
.Si es verdadero (cuadro de diálogo general 1. Abrir () )
Número de imagen = Cargar imagen (cuadro de diálogo común 1. Nombre de archivo)
Dibujar ()
Si es verdadero, final
. .Dibujo de subrutina, tipo lógico
Variable local htkd
Variable local htgd
Si es verdadero (número de imagen = 0)
Fin si es verdadero
htkd = valor de escala X × fondo Obtenga el ancho de la imagen (número de imagen)
htgd = valor de escala. Y , 0, htkd, htgd)
Fondo de dibujo (número de imagen, 0, 0, htkd, htgd, )
Fondo (, , , , Tablero de dibujo 1. , 0 , 0, )
Mover (, , htkd, htgd)
Regresar (verdadero)
Subroutine_Drawingboard 1_Se presiona el botón izquierdo del mouse, tipo lógico.
Posición horizontal del parámetro, tipo entero
Posición vertical del parámetro, tipo entero
. ' Enviar mensaje (161, 2, 0)
x = posición horizontal
y = posición vertical
movable = true
Capturar mouse (tablero de dibujo 1. Obtener identificador de ventana ())
Subrutina_tablero de dibujo 1_se suelta el botón izquierdo del mouse, tipo lógico
.Parámetro posición horizontal, tipo entero
.Parámetro posición vertical, tipo entero
.Parámetro
Estado de la tecla de función, tipo entero
Suelta el mouse() para mover = false
Subrutina_Paint1_La posición del mouse se mueve, tipo lógico
. tipo
Posición vertical del parámetro, tipo entero
Estado de la tecla de función del parámetro, tipo entero
.Si es verdadero (móvil)
. Lado izquierdo = Obtener la posición horizontal del mouse () - x
Lado superior = Obtener la posición vertical del mouse () - y
Si es verdadero, finalizar
.Subprograma__ventana de inicio_la rueda gira, tipo lógico
.Distancia de desplazamiento del parámetro, tipo entero
.Estado de la tecla de función del parámetro, tipo entero
Escala valor
Valor de escala X = 0.1
Si es verdadero final
Si es verdadero (valor de escala = 5
. Si es verdadero final.
Si es verdadero (valor de escala Y < 0,1)
Valor de escala Y = 0,1
Finalizar si es verdadero
. verdadero (valor de escala X > 5)
Valor de escala Y = 5
Finalizar si es verdadero
Draw()
Depuración de salida. texto (valor de zoom X)