Red de conocimiento informático - Problemas con los teléfonos móviles - ¿Cómo utilizar el control OLE para conectarse al software CAD y mostrar gráficos CAD en la versión VB2010? Te daré un código.

¿Cómo utilizar el control OLE para conectarse al software CAD y mostrar gráficos CAD en la versión VB2010? Te daré un código.

vb2010 (vb.net) parece no tener control OLE

El siguiente código utiliza el control PictureBox para mostrar archivos CAD DWG. ¿Privado? ¿Estructura?BITMAPFILEHEADER

¿Dim?bfType?As?Short

Dim?bfSize?As?Integer

Dim?bfReserved1?As?Short

Dim?bfReserved2?As?Short

¿Dim?bfOffBits?As?Integer

¿Fin?StructurePublic?Function?GetDwgImage(ByVal?FileName?As?String)?As?Image

¿Si? No ?File.Exists(FileName)?Then?Exit?Function

Dim?DwgF?As?FileStream' flujo de archivos

Dim?PosSentinel?As?Integer?' Ubicación

Dim?br?As?BinaryReader?'Leer archivo binario

Dim?TypePreview?As?Integer?'Formato de miniatura

Dim?PosBMP ?As ?Entero?'Posición de la miniatura

Dim?LenBMP?As?Entero?'Tamaño de la miniatura

Dim?biBitCount?As?Short?'Profundidad de bits de la miniatura

p>

Dim?biH?As?BITMAPFILEHEADER?'Encabezado de archivo BMP, el archivo DWG no contiene encabezado de archivo de mapa de bits, debe agregarlo usted mismo

Dim?BMPInfo()?As?Byte? 'Cuerpo del archivo BMP contenido en el archivo DWG

Dim?BMPF?As?New?MemoryStream?' Flujo de archivo de memoria que guarda mapas de bits

Dim?bmpr?As?New?BinaryWriter (BMPF) )?'Escribir clase de archivo binario

Dim?myImg?As?Image

Pruebe

DwgF?=?New?FileStream(FileName,?FileMode .Open ,?FileAccess.Read)'Secuencia de archivos

br?=?New?BinaryReader(DwgF)

DwgF.Seek(13,?SeekOrigin.Begin)?'A partir de trece bytes leyendo

PosSentinel?=?br.ReadInt32?' Los bytes 13 a 17 indican la ubicación del bloque de descripción en miniatura

DwgF.Seek(PosSentinel? ? 30,?SeekOrigin.Begin) ?'Mover el puntero al byte 31 de la descripción de la miniatura blockTypePreview?=?br.ReadByte?'El byte 31 es la información del formato de la miniatura, 2? es el formato BMP, 3 es el formato WMF

¿Seleccionar? Case?TypePreview

Case?1Case?2,?3

PosBMP?=?br.ReadInt32?' Mapa de bits guardado en archivo DWG Ubicación

LenBMP?= ?br.ReadInt32?

'El tamaño del mapa de bits

DwgF.Seek(PosBMP? ?14, ?SeekOrigin.Begin)?'Mover el puntero al bloque de mapa de bits

biBitCount?=?br.ReadInt16 ?'Leer Obtener la profundidad de bits

DwgF.Seek(PosBMP,?SeekOrigin.Begin)?' Leer todo el contenido del mapa de bits desde el principio del bloque de mapa de bits para su uso posterior

BMPInfo ?=?br.ReadBytes (LenBMP)?' no contiene la información del mapa de bits del encabezado del archivo

br.Close()

DwgF.Close()

Con?biH?' Crear encabezado de archivo de mapa de bits

.bfType?=?amp;H4D42

If?biBitCount?lt;?9?Then?.bfSize?=?54 ?4?*?( 2?^?biBitCount)? ?LenBMP?Else?.bfSize?=?54? p>.bfReserved2?= ?0?'Bytes reservados

.bfOffBits?=?14?amp;H28?'1024?'Desplazamiento de datos de imagen

Fin?Con

'Empiece a escribir el encabezado del archivo de mapa de bits a continuación

bmpr.Write(biH.bfType)?'Tipo de archivo

bmpr.Write(biH.bfSize)?'Archivo tamaño

p>

bmpr.Write(biH.bfReserved1)?'0

bmpr.Write(biH.bfReserved2)?'0

bmpr.Write( biH.bfOffBits)? 'Desplazamiento de datos de imagen

bmpr.Write(BMPInfo)?'Escribir mapa de bits

BMPF.Seek(0,?SeekOrigin.Begin)?'El puntero se mueve a el comienzo del archivo myImg?=?Image.FromStream(BMPF)?'Crear un objeto de archivo de mapa de bits

Return?myImg

bmpr.Close()

BMPF.Close( )

¿Fin?Seleccionar

¿Catch?ex?As?Exception

¿Devolver?Nada

¿Fin?Probar ?

¿Fin?Función