很遺憾vb沒有自帶的條形碼控件(你說(shuō)的條形碼應(yīng)該是商品上貼著的條形碼吧)。ps網(wǎng)上可能找得到條形碼控件,還有注意要下載的話確認(rèn)一下是ocx文件。
網(wǎng)站建設(shè)公司,為您提供網(wǎng)站建設(shè),網(wǎng)站制作,網(wǎng)頁(yè)設(shè)計(jì)及定制網(wǎng)站建設(shè)服務(wù),專注于企業(yè)網(wǎng)站制作,高端網(wǎng)頁(yè)制作,對(duì)水泥攪拌車等多個(gè)行業(yè)擁有豐富的網(wǎng)站建設(shè)經(jīng)驗(yàn)的網(wǎng)站建設(shè)公司。專業(yè)網(wǎng)站設(shè)計(jì),網(wǎng)站優(yōu)化推廣哪家好,專業(yè)網(wǎng)站推廣優(yōu)化,H5建站,響應(yīng)式網(wǎng)站。
工具箱,然后隨便選擇一項(xiàng),右鍵 選擇項(xiàng),在.com控件里,microsoft bar ctrol 9.0
很簡(jiǎn)單。只需要安裝Code39字體,或者加載到系統(tǒng)中就可以。
報(bào)表設(shè)置該字體自然就表示成條形碼了。
Code39字體從網(wǎng)上搜索能搜索到。
Option?Explicit
Private?WithEvents?NewTextBox?As?TextBox
'通過使用WithEvents關(guān)鍵字聲明一個(gè)對(duì)象變量為新的命令按鈕
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和漢信二維條碼,具體步騶如下:
工具/原料
準(zhǔn)備VB開發(fā)環(huán)境,VS6.0開發(fā)環(huán)境
方法/步驟
創(chuàng)建VB工程,COPY二維條碼動(dòng)態(tài)鏈接庫(kù)到您的工程中。您需要引用的動(dòng)態(tài)庫(kù)有:EnCodePdf.dll,EnCodeQr.dll,EnDataMatrix和EnHanxin.dll。
大家可以參照下圖放置DLL和INI的目錄位置。
'動(dòng)態(tài)鏈接庫(kù)引用
(說(shuō)明:下面是所有四種條碼的接口引用申明,讀者可以適當(dāng)剪裁)
'串口接口
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 圖像壓縮函數(shù)
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
進(jìn)行條形碼制作:
我們?cè)谝肁PI接口后,可以參照下面程序,實(shí)現(xiàn)接口調(diào)用
程序中txtfile表示文本文件名,binBmpFile表示輸入的圖像文件名
若需要裝載圖像可以采用Make開頭接口,若不需要?jiǎng)t采用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
打開關(guān)閉串口:
條碼編碼控件一般自帶串口接收處理接口:
InitRead接口是初始化串口
CloseRead接口是關(guān)閉串口
If Cmd_OpenComm.Caption = "連接串口" Then
Call SetPdfConFile(Edit_ConFileName.Text)
If InitRead(Me.hwnd, App.Path + "\") = 1 Then
Cmd_OpenComm.Caption = "斷開串口"
End If
Else '關(guān)閉串口
If CloseRead() = 1 Then
Cmd_OpenComm.Caption = "連接串口"
End If
End If
接收條碼識(shí)讀器內(nèi)容:
串口收到識(shí)讀器信息后,以鍵盤消息的形式,觸發(fā)頁(yè)面消息。
我們調(diào)用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