Programación de Gráficos - generar metafiles

 
Vista:

generar metafiles

Publicado por Y.Cruz (2 intervenciones) el 09/04/2002 17:00:12
Como genero metafiles basado en trazos hechos en un picture box mediante los metodos line, circle etc. en visual basic 6.0? Los declare no parecen estar funcionando. Si me dan un ejemplo se los voy a agradecer..
Valora esta pregunta
Me gusta: Está pregunta es útil y esta claraNo me gusta: Está pregunta no esta clara o no es útil
0
Responder
Imágen de perfil de Alejandro

Generación de metafiles basados en trazos en Visual Basic 6.0

Publicado por Alejandro (110 intervenciones) el 04/04/2024 16:56:44
Y, en Visual Basic 6.0, puedes generar metafiles basados en trazos hechos en un PictureBox utilizando la función API de Windows llamada "CreateMetaFile". Aquí tienes un ejemplo de cómo puedes hacerlo:

1. Agrega un PictureBox a tu formulario y nómbralo "PictureBox1".

2. Agrega un botón al formulario y nómbralo "btnGenerarMetafile".

3. En el evento Click del botón "btnGenerarMetafile", agrega el siguiente código:

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
Private Declare Function CreateMetaFile Lib "gdi32" Alias "CreateMetaFileA" (ByVal lpFilename As String) As Long
Private Declare Function CloseMetaFile Lib "gdi32" (ByVal hdc As Long) As Long
Private Declare Function DeleteMetaFile Lib "gdi32" (ByVal hmf As Long) As Long
Private Declare Function GetDC Lib "user32" (ByVal hwnd As Long) As Long
Private Declare Function ReleaseDC Lib "user32" (ByVal hwnd As Long, ByVal hdc As Long) As Long
Private Declare Function PlayMetaFile Lib "gdi32" (ByVal hdc As Long, ByVal hmf As Long) As Long
 
Private Sub btnGenerarMetafile_Click()
    Dim hMetafile As Long
    Dim hdc As Long
 
    ' Crear el metafile '
    hMetafile = CreateMetaFile("trazos.emf")
 
    ' Obtener el contexto de dispositivo del PictureBox '
    hdc = GetDC(PictureBox1.hwnd)
 
    ' Dibujar los trazos en el metafile '
    Circle hdc, 1000, 1000, 500
    Line hdc, 500, 500, 1500, 1500
 
    ' Liberar el contexto de dispositivo '
    ReleaseDC PictureBox1.hwnd, hdc
 
    ' Cerrar el metafile '
    CloseMetaFile hMetafile
 
    ' Mostrar el metafile en el PictureBox '
    PictureBox1.Picture = LoadPicture("trazos.emf")
 
    ' Reproducir el metafile en el PictureBox '
    PlayMetaFile PictureBox1.hdc, hMetafile
 
    ' Eliminar el metafile '
    DeleteMetaFile hMetafile
End Sub

Este código crea un metafile llamado "trazos.emf" utilizando la función "CreateMetaFile". Luego, dibuja los trazos en el metafile utilizando los métodos "Circle" y "Line" del contexto de dispositivo obtenido del PictureBox. Después de cerrar el metafile, carga y muestra el metafile en el PictureBox utilizando la propiedad "Picture". Finalmente, reproduce el metafile en el PictureBox utilizando la función "PlayMetaFile" y elimina el metafile utilizando la función "DeleteMetaFile".

Recuerda que este ejemplo utiliza funciones de la API de Windows y puede requerir ajustes adicionales según tus necesidades específicas.
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar