重庆分公司,新征程启航
为企业提供网站建设、域名注册、服务器等服务
很遗憾vb没有自带的条形码控件(你说的条形码应该是商品上贴着的条形码吧)。ps网上可能找得到条形码控件,还有注意要下载的话确认一下是ocx文件。
网站建设公司,为您提供网站建设,网站制作,网页设计及定制网站建设服务,专注于企业网站制作,高端网页制作,对水泥搅拌车等多个行业拥有丰富的网站建设经验的网站建设公司。专业网站设计,网站优化推广哪家好,专业网站推广优化,H5建站,响应式网站。
工具箱,然后随便选择一项,右键 选择项,在.com控件里,microsoft bar ctrol 9.0
很简单。只需要安装Code39字体,或者加载到系统中就可以。
报表设置该字体自然就表示成条形码了。
Code39字体从网上搜索能搜索到。
Option Explicit
Private WithEvents NewTextBox As TextBox
'通过使用WithEvents关键字声明一个对象变量为新的命令按钮
Private Sub Command1_Click()
If NewTextBox Is Nothing Then
Set NewTextBox = Controls.Add("VB.TextBox", "cmdNew", Form1)
NewTextBox.Move 200, 200
NewTextBox.Width = Form1.Width - 450
NewTextBox.Height = Form1.Height - 1400
NewTextBox.Visible = True
End If
End Sub
Private Sub Command2_Click()
If NewTextBox Is Nothing Then
Exit Sub
Else
Controls.Remove NewTextBox
Set NewTextBox = Nothing
End If
End Sub
如何在VB程序下生成二维条码,包括PDF417、QrCode、DataMatrix和汉信二维条码,具体步驺如下:
工具/原料
准备VB开发环境,VS6.0开发环境
方法/步骤
创建VB工程,COPY二维条码动态链接库到您的工程中。您需要引用的动态库有:EnCodePdf.dll,EnCodeQr.dll,EnDataMatrix和EnHanxin.dll。
大家可以参照下图放置DLL和INI的目录位置。
'动态链接库引用
(说明:下面是所有四种条码的接口引用申明,读者可以适当剪裁)
'串口接口
Private Declare FunctionInitRead Lib "EnCodePdf.dll" (ByVal hcallwnd As Long, ByVal pathnameAs String) As Long
Private Declare FunctionCloseRead Lib "EnCodePdf.dll" () As Long
'生成PDF417接口
Private Declare SubSetPdfConFile Lib "EnCodePdf.dll" (ByVal confile As String)
Private Declare FunctionEnPdfText Lib "EnCodePdf.dll" (ByVal txtData As String, ByVal outfileAs String) As String
Private Declare FunctionEnCodePdf Lib "EnCodePdf.dll" (ByVal txtfile As String, ByVal outfileAs String) As String
Private Declare FunctionMakePdf417 Lib "EnCodePdf.dll" (ByVal txtfile As String, ByValpictfile As String, ByVal otherfile As String, ByVal outfile As String) AsString
'生成QrCode接口
Private Declare SubSetQrConFile Lib "EnCodeQr.dll" (ByVal confile As String)
Private Declare FunctionEnQrText Lib "EnCodeQr.dll" (ByVal txtData As String, ByVal outfileAs String) As String
Private Declare FunctionEnCodeQr Lib "EnCodeQr.dll" (ByVal txtfile As String, ByVal outfileAs String) As String
Private Declare FunctionMakeQrCode Lib "EnCodeQr.dll" (ByVal txtfile As String, ByVal pictfileAs String, ByVal otherfile As String, ByVal outfile As String) As String
'生成DataMatrix接口
Private Declare SubSetDmConFile Lib "EnDataMatrix.dll" (ByVal confile As String)
Private Declare FunctionEnDmText Lib "EnDataMatrix.dll" (ByVal txtData As String, ByValoutfile As String) As String
Private Declare FunctionEnDataMatrix Lib "EnDataMatrix.dll" (ByVal txtfile As String, ByValoutfile As String) As String
Private Declare FunctionMakeDataMatrix Lib "EnDataMatrix.dll" (ByVal txtfile As String, ByValpictfile As String, ByVal otherfile As String, ByVal outfile As String) AsString
'生成HanXin接口
Private Declare SubSetHxConFile Lib "EnHanXin.dll" (ByVal confile As String)
Private Declare FunctionEnHxText Lib "EnHanXin.dll" (ByVal txtData As String, ByVal outfileAs String) As String
Private Declare FunctionEnCodeHx Lib "EnHanXin.dll" (ByVal txtfile As String, ByVal outfileAs String) As String
Private Declare FunctionMakeHanXin Lib "EnHanXin.dll" (ByVal txtfile As String, ByValpictfile As String, ByVal otherfile As String, ByVal outfile As String) AsString
'WAPI接口
Private Declare FunctionSetCurrentDirectory Lib "kernel32" Alias"SetCurrentDirectoryA" (ByVal lpPathName As String) As Long
Private Declare FunctionWritePrivateProfileString Lib "kernel32" Alias"WritePrivateProfileStringA" (ByVal lpApplicationName As String,ByVal lpKeyName As Any, ByVal lpString As Any, ByVal lpFileName As String) AsLong
Private Declare FunctionGetPrivateProfileInt Lib "kernel32" Alias"GetPrivateProfileIntA" (ByVal lpApplicationName As String, ByVallpKeyName As String, ByVal nDefault As Long, ByVal lpFileName As String) AsLong
Private Declare FunctionGetPrivateProfileString Lib "kernel32" Alias"GetPrivateProfileStringA" (ByVal lpApplicationName As String, ByVallpKeyName As Any, ByVal lpDefault As String, ByVal lpReturnedString As String,ByVal nSize As Long, ByVal lpFileName As String) As Long
Private Declare FunctionSetWindowLong Lib "user32" Alias "SetWindowLongA" (ByValhwnd As Long, ByVal nIndex As Long, ByVal dwNewLong As Long) As Long
Private Declare FunctionSetParent Lib "user32" (ByVal hWndChild As Long, ByVal hWndNewParentAs Long) As Long
'生成图像小波压缩接口
'exports from nlcomp.dll 图像压缩函数
Private Declare FunctionSizeDIB Lib "Wcomp.dll" (ByVal oldmap As String, ByVal BmpHeight AsInteger, ByVal BmpWidth As Integer) As Long
Private Declare FunctionWcompress Lib "Wcomp.dll" (ByVal infile As String, ByVal outfile AsString, ByVal budget As Long) As Long
Private Declare FunctionWdecompress Lib "Wcomp.dll" (ByVal infile As String, ByVal outfile AsString) As Long
进行条形码制作:
我们在引用API接口后,可以参照下面程序,实现接口调用
程序中txtfile表示文本文件名,binBmpFile表示输入的图像文件名
若需要装载图像可以采用Make开头接口,若不需要则采用En开头接口。
If (txtfile "" Or binBmpFile "") Then
If m_bWorkMode = 1 Then 'PDF417
SetPdfConFile (Edit_ConFileName.Text)
If (Edit_ImgFileName.Text "") Then
strBmpFile = MakePdf417(txtfile, binBmpFile,"", "")
Else
strBmpFile = EnPdfText(Edit_Source.Text,"")
End If
ElseIf m_bWorkMode = 2 Then 'Qr_Code
SetQrConFile (Edit_ConFileName.Text)
If (Edit_ImgFileName.Text "") Then
strBmpFile = MakeQrCode(txtfile, binBmpFile,"", "")
Else
strBmpFile = EnQrText(Edit_Source.Text,"")
End If
ElseIf m_bWorkMode = 3 Then ' DataMatrix
SetDmConFile (Edit_ConFileName.Text)
If (Edit_ImgFileName.Text "") Then
strBmpFile = MakeDataMatrix(txtfile,binBmpFile, "", "")
Else
strBmpFile = EnDmText(Edit_Source.Text,"")
End If
Else
SetHxConFile (Edit_ConFileName.Text)
If (Edit_ImgFileName.Text "") Then
strBmpFile = MakeHanXin(txtfile, binBmpFile,"", "")
Else
strBmpFile = EnHxText(Edit_Source.Text,"")
End If
End If
打开关闭串口:
条码编码控件一般自带串口接收处理接口:
InitRead接口是初始化串口
CloseRead接口是关闭串口
If Cmd_OpenComm.Caption = "连接串口" Then
Call SetPdfConFile(Edit_ConFileName.Text)
If InitRead(Me.hwnd, App.Path + "\") = 1 Then
Cmd_OpenComm.Caption = "断开串口"
End If
Else '关闭串口
If CloseRead() = 1 Then
Cmd_OpenComm.Caption = "连接串口"
End If
End If
接收条码识读器内容:
串口收到识读器信息后,以键盘消息的形式,触发页面消息。
我们调用FORM下,处理KeyDown事件。
Private Sub Form_KeyDown(KeyCode As Integer, Shift As Integer)
Dim FileNo As Integer
Dim strTmp As String
Dim strBmpFile As String
strBmpFile = App.Path "\temp.bmp"
If KeyCode = 255 Then
FileNo = FreeFile()
Open App.Path "\temp.txt" For Input As #FileNo
Edit_Source.Text = ""
Do While Not EOF(FileNo)
strTmp = ""
Input #FileNo, strTmp
Edit_Source.Text = Edit_Source.Text strTmp Chr(13) Chr(10)
Loop
Close #FileNo
If Dir(strBmpFile) "" Then
Kill (strBmpFile)
End If
If Dir(App.Path "\temp.img") "" Then
If FileLen(App.Path "\temp.img") 10 Then
Call Wdecompress(App.Path "\temp.img", strBmpFile)
End If
End If
If Dir(strBmpFile) "" Then
Image_Bar.Picture = LoadPicture(strBmpFile)
Else
Image_Bar.Picture = LoadPicture("")
End If
Cmd_Print.Enabled = False
End If
End Sub