Cómo hacer un código de barras usando lenguaje C
1. Leer códigos de barras
Los amigos que han utilizado herramientas de escaneo de códigos de barras basadas en teclado sabrán que es como presionar las teclas numéricas del teclado y que básicamente no requiere ninguna programación. y procesamiento. Pero si está utilizando otra interfaz, es posible que deba escribir un código de comunicación para el dispositivo. El siguiente es un código de comunicación simple para un lector de código de barras de puerto serie de 25 pines.
Opción explícita
Dim sData As String
Sub privado Form_Load()
Con MSComm1
.CommPort = 3 'Establecido en COM3, dependiendo del sistema de ejecución de prueba, puede proporcionar un Combbox para que el usuario elija.
.PortOpen = True 'Abre el puerto de comunicación
Finalizar con
Fin Sub
Private Sub MSComm1_OnComm()
Dim EndPos As Integer
Seleccione Case MSComm1.CommEvent
Case comEvReceive 'Cuando se transmiten datos
sData = sData & Trim(MSComm1.Input)
'Recuperar retorno de carro, normalmente el lector de tarjetas devuelve un retorno de carro como terminador al final de cada conjunto de datos
EndPos = InStr(1, sData, Chr(13) )
Si EndPos = 0 Entonces 'Si no ha terminado, continúa trabajando duro
De lo contrario 'Lee un grupo.
lblBarCode.Caption = sData 'Mostrar un conjunto de códigos de barras
Con lstBarCode
.AddItem Mid(sData, 1, EndPos - 1) 'Agregar un conjunto de códigos de barras a lista
Finalizar con
sData = "" 'Borrar
Finalizar si
Finalizar seleccionar
End Sub
Private Sub cmdEnd_Click()
MSComm1.PortOpen = False 'Cerrar el puerto
End
End Sub p>
2. Generación de códigos de barras
¿Crees que es fácil después de leer el código anterior sobre la lectura de códigos de barras? Sí, programar en VB no es difícil en primer lugar. El siguiente código para la generación de códigos de barras también es muy fácil de entender. Puede imprimir fácilmente 11 códigos de barras estándar diferentes simplemente usando un control de código de barras que viene con OFFICE, que es suficiente para cumplir con nuestros requisitos. Pienso en un artículo largo sobre cómo escribir un programa de impresión de códigos de barras usando Turbo C en un libro que tengo en la estantería. Lo leí durante n días y lo escribí durante n horas y el resultado no fue satisfactorio. Ahora estoy mucho más feliz :). Después de tantas tonterías, volvamos al punto. Echemos un vistazo al código generado por el código de barras y las instrucciones relacionadas.
El código fuente consta principalmente de dos formularios (formulario principal frmMain y formulario de configuración de código de barras frmOption) y dos módulos (modGetScreen.bas, SysDLG32.bas). Teniendo en cuenta el espacio, aquí sólo se enumeran algunos de los códigos más críticos.
Cree un nuevo proyecto estándar, agregue un componente de código de barras llamado (Microsoft Access BarCode Control9), agregue un control de código de barras a la ventana y cambie el nombre de la ventana a frmMain, como se muestra en la figura. Dado que hay muchos controles, no es conveniente entrar en detalles aquí. Consulte el código fuente para obtener más detalles.
El código del módulo modGetScreen.bas es el siguiente:
Opción explícita
'Declarar brevemente las funciones API BitBlt, GetDesktopWindow, GetWindowDC y ReleaseDC
RegUser público como booleano
Sub GetObjImage1 (Obj como objeto, OwnerForm como PictureBox, Imagen1 como PictureBox)
'hDC
Dim hWndDesk As Long< / p>
Dim hDCDesk As Long
'Variable de expresión regional
Dim x As Long
Dim y As Long
Atenuar w mientras
Atenuar h mientras
x = Obj.Pantalla izquierda.TwipsPerPixelX
y = Obj.Pantalla superior.TwipsPerPixelY
w = Obj.Width Screen.TwipsPerPixelX
h = Obj.Height Screen.TwipsPerPixelY
hDCDesk = OwnerForm.hdc
'Eliminar imagen
Llamar a BitBlt(Picture1.hdc, 0, 0, w, h, hDCDesk, x, y, vbSrcCopy)
Llamar a ReleaseDC(hWndDesk, hDCDesk)
Fin del sub
Parte del código en el formulario principal frmMain.frm es el siguiente:
Private Sub cmdPrint_Click()
'Generar imagen de código de barras
Dim r As Long, i As Integer, t As String,cfile As String 'Variable temporal
t = BarCode
For i = 0 To Val(Times) - 1
BarCode1.Value = BarCode + i
DoEvents
Imagen1.Refresh
GetObjImage1 BarCode1, Conel, Imagen1
Si RegUser = False Then 'Si no está registrado, agregue la etiqueta MASK
Imagen1.PaintPicture Imagen2.Picture, 300, 300
Fin
Si Dir( SavePath, vbDirectory) = "" Luego MkDir SavePa
th
SavePath = SavePath & IIf(Right(SavePath, 1) <> "", "", "")
cfile = SavePath & BarCode1.Value & ".bmp"
SavePicture Picture1.Image, cfile 'Guarda el código de barras como un archivo de imagen para imprimir
Siguiente
BarCode = t
End Sub
El código frmOption.frm del formulario de configuración del código de barras es el siguiente:
Opción explícita
'Módulo de configuración del código de barras
Private Sub cboBig_Click( ) p>
BarCode1.Style = cboBig.ListIndex 'Cambiar estándar
End Sub
Private Sub cboDirection_Click()
BarCode1.Direction = cboDirection.ListIndex 'Cambiar dirección
End Sub
Private Sub cboLine_Click()
BarCode1.LineWeight = cboLine.ListIndex 'Cambiar ancho de línea
End Sub
Private Sub cboSmall_Click()
BarCode1.SubStyle = cboSmall.ListIndex 'Cambiar estilo
End Sub
Private Sub Check1_Click()
BarCode1.ShowData = Check1.Value 'Si se muestran datos
End Sub
Private Sub cmdChange_Click()
'Establece el tamaño largo y ancho
BarWidth = BarCode1.Height
BarHeight = BarCode1.Width
cmdRefresh_Click
End Sub
Private Sub cmdOK_Click()
'Enviar configuración de código de barras a la interfaz principal
Con frmMain.BarCode1
.LineWeight = BarCode1.LineWeight
.Style = BarCode1.Style
.SubStyle = BarCode1.SubStyle
.Direction = BarCode1.Direction
.Width = BarCode1 .Ancho
.Alto = Código de barras1.Alto
.ShowD
ata = BarCode1.ShowData
Me.Hide
Terminar con
Con frmMain
.Picture1.Width = .BarCode1.Width
.Picture1.Height = .BarCode1.Height
.Conel.Width = .BarCode1.Width
.Conel.Height = .BarCode1.Height
Terminar con
Fin Sub
Sub privado cmdRefresh_Click()
BarCode1.Width = BarWidth
BarCode1.Height = BarHeight
End Sub
Private Sub Form_Load()
LoadBarInfo
BarWidth = BarCode1.Width
BarHeight = BarCode1.Height
End Sub
Sub LoadBarInfo() 'Opciones de inicialización
LoadBigClass cboBig
LoadSmallClass cboSmall
LoadLineSize cboLine
LoadDirection cboDirection
End Sub
Sub LoadBigClass(cbo As ComboBox) 'Estándar de código de barras
Con cbo p>
.AddItem "UPC-A"
.AddItem "UPC-E"
.AddItem "EAN-13"
.AddItem " EAN-8"
.AddItem "Código de caso"
.AddItem "Codabar (NW-T)"
.AddItem "Código-39" p>
.AddItem "Code-128"
.AddItem "U.S. Postnet"
.AddItem "U.S. Postal FIM"
.AddItem "JP Publicar"
.ListIndex = 2
Terminar con
End Sub
Sub LoadSmallClass(cbo As ComboBox) 'Estilo de código de barras p>
Con cbo
.AddItem "Estándar"
.AddItem "Suplemento de 2 Dígitos"
.AddItem "5-Di
git Suplemento"
.AddItem "Código de caso POS"
.ListIndex = 0
Terminar con
Finalizar sub
Muchas personas quieren agregar funciones de códigos de barras para mejorar la eficiencia del trabajo al escribir aplicaciones de bases de datos, especialmente aplicaciones con mucho tráfico, como gestión de ventas y gestión de bibliotecas. Sin embargo, debido a la dificultad de dominar la tecnología de códigos de barras y la cantidad de etiquetas, también. Como varias razones técnicas en el pasado, muchas personas se han sentido disuadidas. Este artículo presenta una solución de código de barras simple y práctica, espero que pueda ayudarlo a mejorar las funciones del sistema de software. envíe un correo electrónico a peedy@shareware.com.cn