vbvb 标签窗口框疑问

有谁用过这个BarCodeCtrl控件(关于条形码的,VB里的ActiveX控件),有一个小问题。急急急! -VB- TryCatch
>> Content
有谁用过这个BarCodeCtrl控件(关于条形码的,VB里的ActiveX控件),有一个小问题。急急急!
我想将这个控件生成的条形码,保存为BMP图片。如何实现(除了打印窗体外)!!!
------Solutions------
在vb中做出控件,用画图的方法实现,就可以了!
------Solutions------
怎么实现,可否讲具体一点
------Solutions------
取得有barcode控件的窗体DC,将窗体的barcode部分用bitblt复制到一个picturebox中,然后用savepicture保存。
------Solutions------
请问能否给个具体的做法,本人还是不很清楚。”将窗体的barcode部分用bitblt复制到一个picturebox“这个怎么实现?
------Solutions------
用bitblt函数Private&Declare&Function&BitBlt&Lib&"gdi32"&(ByVal&hDCDest&As&Long,&ByVal&XDest&As&Long,&ByVal&YDest&As&Long,&ByVal&nWidth&As&Long,&ByVal&nHeight&As&Long,&ByVal&hDCSrc&As&Long,&ByVal&xSrc&As&Long,&ByVal&ySrc&As&Long,&ByVal&dwRop&As&Long)&As&Long因为barcode控件无法直接获取hdc,可以用它的容器,如窗体的HDC&作为上面的hdcSrc,另外kxSrc,ySrc是barcode在容器上的位置。总之用bitblt函数截取窗体上的barcode控件部分,复制到picturebox上再保存。
------Solutions------
建议楼主不要用此控件了,打印出来的条码根本扫描不到。
------Solutions------
按三楼的做法,无法实现目的
------Solutions------
有多种方法来编写条码:1)条码字体,但效果似乎不太好,经常打出来无法识别;2)条码控件,比第一种方法好些,如微软有一Msbcode9.ocx就可以,但如处理不好,也同样会出现打出来无法识别的现象;3)根据条码编码规则自己编写(绘图),这种效果较好,且不受缩放影响,缺点是编程量大,找一个条码的国家标准看看:/bbs/show.asp?id=378&bd=1014)我知道有一个条码接口套件,它采用的就是根据条码规则绘制条码,并且是以EXE应用接口的方式来处理,应用起来比较简单,这里有一个介绍:/txm/jiekou/jiekou.htm条码解码的话,这里有一个解码控件,或许对你有所帮助:/down/scan39.exevb文本框取值问题
[问题点数:40分,结帖人aoecal]
vb文本框取值问题
[问题点数:40分,结帖人aoecal]
不显示删除回复
显示所有回复
显示星级回复
显示得分回复
只显示楼主
2011年1月 VB大版内专家分月排行榜第二2010年10月 VB大版内专家分月排行榜第二
2013年1月 VB大版内专家分月排行榜第三2012年12月 VB大版内专家分月排行榜第三2011年6月 VB大版内专家分月排行榜第三2011年2月 VB大版内专家分月排行榜第三2010年12月 VB大版内专家分月排行榜第三2010年11月 VB大版内专家分月排行榜第三2009年7月 VB大版内专家分月排行榜第三
2011年1月 VB大版内专家分月排行榜第二2010年10月 VB大版内专家分月排行榜第二
2013年1月 VB大版内专家分月排行榜第三2012年12月 VB大版内专家分月排行榜第三2011年6月 VB大版内专家分月排行榜第三2011年2月 VB大版内专家分月排行榜第三2010年12月 VB大版内专家分月排行榜第三2010年11月 VB大版内专家分月排行榜第三2009年7月 VB大版内专家分月排行榜第三
2009年4月 VB大版内专家分月排行榜第三2007年10月 VB大版内专家分月排行榜第三
本帖子已过去太久远了,不再提供回复功能。5628人阅读
ASP.NET(23)
&纵观机房收费系统,判断文本框、组合框为空问题无非两种情况。第一种:判断窗体中所有文本框、组合框是否为空。第二种:判断一部分文本框、组合框是否为空。下面看看我是如何实现这两种情况的。
第一种:判断窗体中所有文本框、组合框是否为空。
''' &summary&
''' 判断窗体中所有文本框、组合框输入内容是否为空,若窗体中有允许为空的文本框或组合框,
'''则不能使用此函数
''' &/summary&
''' &param name=&frm&&&/param&
''' &returns&&/returns&
''' &remarks&&/remarks&
Public Shared Function IsAllEmptyText(ByVal frm As Form) As Boolean
Dim control As New Control
For Each control In frm.Controls '遍历窗体中所有的控件
If TypeOf control Is TextBox Then '判断控件是不是文本框
If control.Text.Trim = && Then '判断文本框内容是否为空
MsgBox(control.Tag.ToString + &不能为空!&, vbOKOnly, &温馨提示&)
control.Focus()
Return True
Exit Function
ElseIf TypeOf control Is ComboBox Then '判断控件是不是组合框
If control.Text.Trim = && Then
MsgBox(control.Tag.ToString + &不能为空!&, vbOKOnly, &温馨提示&)
Return True
Exit Function
Return False
End Function
第二种:判断一部分文本框、组合框是否为空。
''' &summary&
''' 判断控件数组中的控件的Text属性是否为空
''' &/summary&
''' &param name=&arrayControl&&&/param&
''' &returns&&/returns&
''' &remarks&&/remarks&
Public Shared Function IsSomeEmptyText(ByVal arrayControl() As Control) As Boolean
Dim control As New Control
For Each control In arrayControl '遍历数组中所有元素
If TypeOf control Is TextBox Then '判断控件是不是文本框
If control.Text.Trim = && Then '判断文本框内容是否为空
MsgBox(control.Tag.ToString + &不能为空!&, vbOKOnly, &温馨提示&)
control.Focus()
Return True
Exit Function
ElseIf TypeOf control Is ComboBox Then '判断控件是不是组合框
If control.Text.Trim = && Then
MsgBox(control.Tag.ToString + &不能为空!&, vbOKOnly, &温馨提示&)
Return True
Exit Function
Return False
End Function
调用函数:
Dim arrayControl() As Control
ReDim Preserve arrayControl(1)
&arrayControl(0) = txtUserName
arrayControl(1) = txtPassword
If UIEmpty.IsSomeEmptyText(arrayControl) Then
参考知识库
* 以上用户言论只代表其个人观点,不代表CSDN网站的观点或立场
访问:216991次
积分:5369
积分:5369
排名:第3241名
原创:111篇
评论:1530条
(1)(4)(4)(4)(4)(4)(4)(4)(3)(4)(4)(3)(4)(3)(4)(3)(4)(4)(4)(5)(4)(3)(3)(4)(4)(4)(3)(3)(4)(2)(3)(4)(2)天极传媒:天极网全国分站
您现在的位置: &&
解决VB中的Grid控件的打印问题
VB编程乐园 00:00
 Grid控件是最常见控件之一,从VB3.0到VB5.0都有该控件。也是VB爱好者最 喜爱的工具之一。用它可以以表格的形式显示、浏览数据,特别是数据库,直接绑定即可显
示浏览数据库信息。然而,美中不足的是Grid没有编辑和打印功能,列与列的位置不能相互交 换。笔者曾尝试着给Grid增添了这些功能,使之锦上添花,功能更强大。下面给出改进方法及源
程序,读者只需按步骤写下源程序即可使你的Grid具有打印功能。该程序笔者在HP5/100Window 95环境下用VB5.0调试通过。  给Grid控件增加打印方法有三种:1是直接打印控件的方法,2
是过printer来实现打印功能,3是通过调用MS-WORD及MS-EXCEl来实现打印。
首先,打开一个应用,在FORM1中增加DATA控件DATA1,把DATA1的CONNECT属性设为dBASEIII, 再把DATABASENAME属性设为D:\PJXM.DBF。然后再在FORM1中增加MSFLEXGRID空间GRID1,并把GRID1的DATASOURCE
属性设为DATA1。这样数据库PJXM.DBF的信息就会在GRID1中显示出来。  方法一:直 接打印窗体法,在FORM1中增加命令按钮(command),CAPTION属性设为直接打印,再写入下列
编码:Subcommand_click
Form1.printform
Endsub  这样即可通过打印窗体FORM1的方法把GRID1的数据打印出来,遗憾的是只 能打印GRID1中显示的数据部分,显示不出来的则无法打印,而且这种打印方法很象屏幕硬拷
贝把其他控件也打印出来。也不能灵活的控制字体等。方法二:通过PRINTER实现打印。 这种方法  1、加入打印命令按钮(command1)、函数(prnt1)即可实现打印功能,写入
下面代码,读者稍加改动可写成标准的函数或过程。Functionprnt1(xAsInteger, yAsInteger,
fontAsSingle,txtAsString)
printer.CurrentX=x
printer.CurrentY=y
printer.FontBold=False
printer.FontSize=font
printer.Printtxt
EndFunctionSubcommand1_click
DimfntAsSingle
Dimppasinteger
Pp=0设置开始页码0
Dimstry,strx,strx1,stry1,linw,page1,pAsInteger
Statica(8)AsInteger定义打印的列数
ss$="内部结算存入款对帐单"定义表头
kan=0
Fori=0To8
a(i)=1500定义每列宽
kan=kan+a(i)计算表格总宽度
Nextpage1=50定义每页行数
strx=200
strx1=200定义X方向起始位置
stry=1400
stry1=1400定义Y方向起始位置
linw
0定义行宽
fnt=8定义字体大小
printer.fontname="宋体"定义字体dd=prnt1(,ss$)打印标题
printer.(strx-50,stry-30)
-(strx+kan-10,stry-30)
Forj=0Togridrow-1gridrow为所要打印的行数
grid1.row=j
strx=strx1
printer.Line(strx-50,stry-30)
-(strx+kan-10,stry-30)
p=p+1
Fori=0To8
grid1.col=i
dd=prnt1(strx,stry,fnt,grid1.text)
strx=strx+a(i)
NextIfp$#@62;page1Thennextpage
p=0
strx=strx1
linelastline
printer.Line(strx-50,stry+linw)
-(strx+kan-10,stry+linw)
stry=stry1
linecol
Forn=0To8
printer.Line(strx-30,stry-30)
-(strx-30,stry+(page1+2)*linw)
strx=strx+a(n)
Next
printer.Line(strx-30,stry-30)
-(strx-30,stry+(page1+2)*linw)
pp=pp+1
foot$="第"+cstr(pp)+"页"
dd=prnt1(strx-30-1000,stry+(page1+2)
*linw+100,10,foot$)打印页角码printer.NewPagenextpage
dd=prnt1(,ss$)打印标题
strx=strx1
stry=stry1
printer.Line(strx-50,stry-30)-
(strx+kan-10,stry-30)printfirstrow
Else
stry=stry+linw
EndIf
Next
st=stry
Ifp$#@60;page1Then在最后页剩余划空行
Foro=pTopage1+1
strx=strx1
printer.Line(strx-50,stry-30)
-(strx+kan-10,stry-30)
stry=stry+linw
Next
EndIf
stry=stry1
strx=strx1
stry=stry1linecol
Forn=0To8
printer.Line(strx-30,stry-30)-
(strx-30,stry+(page1+2)*linw)
strx=strx+a(n)
Next
printer.Line(strx-30,stry-30)-
(strx-30,stry+(page1+2)*linw)
pp=pp+1
foot$="第"+cstr(pp)+"页"
dd=prnt1(strx-30-1000,stry+(page1+2)
*linw+100,10,foot$)打印页角码printer.EndDoc打印结束
Endsub  这种方法通过灵活的编程可以方便地调整字体、字型、线形、页面、大小 等。可打印出比较满意的效果。如果你的计算机上装有MICROSOFTWORD和MICROEXCEL,最精彩
的用法还是把GRID的表格通过VB发送到MICROSOFTWORD及MICROEXCEL。生成MICROSOFTWORD 和MICROEXCEL表格。这样就可以充分利用MICROSOFTWORD和MICROEXCEL的打印、编辑功能
打印出更理想的效果。下面逐一介绍。  方法三:通过生成MICROSOFTWORD表格打印   1、在declaration中写入:DimmswordAsObject  2、加入打印命令按
钮(command2),CAPTION设为"生成WORD表格",写入下面代码,PrivateSub command2_Click()screen.MousePointer=11
Setmsword=CreateObject("word.basic")DimAppID,ReturnValue
appID=Shell("d:\office97\office\WINWORD.EXE",1)
RunMicrosoftWord.msword.AppActivate"MicrosoftWord"
msword.AppActivate"MicrosoftWord",1
full
Screen.MousePointer=0
EndSub  2、写入以下过程full()Subfull()
DimiAsInteger,jAsInteger,
colAsInteger,rowAsInteger
DimcellcontentAsString
Me.Hide
cols=4表格的列数
row=gridrow打印表的行数
msword.filenewdefault
msword.MsgBox"正在建立MS_WORD报表,
请稍候.......","",-1
msword.leftpara
msword.screenupdating0
msword.tableinserttable,col,row,,,16,167
msword.startofdocument
forj=0togridrow表格的行数
grid1.row=j
Fori=1Tocols
Gri1d.col=i
IfIsNull(grid1.text)Then
cellcontent$=""
Else
cellcontent$=grid1.text
EndIf
msword.Insertcellcontent$
msword.nextcell
Nexti
Nextj
msword.tabledeleterow
msword.startofdocument
msword.tableselectrow
msword.tableheadings1
msword.centerpara
msword.startdocument
msword.screenrefresh
msword.screenupdating1
msword.MsgBox"结束","",-1
Me.ShowEndSub  方法四:通过发送到MICROSOFTEXCEL实现表格打印   1、加入打印命令按钮(command3),CAPTION设为"生成EXCEL表格",写入下面代
码PrivateSubcommand3_Click()
DimiAsInteger
DimjAsInteger
DimxlAppAsExcel.Application
DimxlBookAsExcel.Workbook
DimxlSheetAsExcel.WorksheetSetxlApp=CreateObject("Excel.Application")
xlApp.Visible=True
SetxlBook=xlApp.Workbooks.Add
OnErrorResumeNext
SetxlBook=xlApp.Workbooks.AddOpen("d:\text2.xls")
SetxlSheet=xlBook.Worksheets(1)
xlSheet.Cells(6,1)="i"
Fori=0Togridrow
grid1.Row=i
Forj=0To6
Grid1.Col=jIfIsNull(Grid1.Text)=FalseThen
xlSheet.Cells(i+5,j+1)=Grid1.Text
EndIf
Nextj
Nexti
ExitSub
(作者:李俊海责任编辑:)
欢迎在新浪微博上关注我们
* 网友发言均非本站立场,本站不在评论栏推荐任何网店、经销商,谨防上当受骗!
笔记本手机数码家电vb中图像框和图片框的问题,急求大神帮助_百度知道
vb中图像框和图片框的问题,急求大神帮助
代码怎么写啊,现在要把这个图像框中的图片按现在的大小弄到图片框中去,就是要图片框显示出现在图像框现在那个图的大小,已经显示到指定的大小了现在我在图像框中显示了图片?急求
提问者采纳
&#47: bool readBmp(char *bmpName) { &#47,读取位图信息头进内存、颜色等、宽度。你可以查查相关文献.biBitCount,长度; if(fp==0) return 0,也差不多这样的形式; biBitCount =
fread(&获取图像宽, sizeof(BITMAPFILEHEADER), 1;); bmpHeight = 同样其他格式图片;二进制读方式打开指定的图像文件 FILE *fp=fopen(bmpName、每像素所占位数等信息 bmpWidth =//rb&quot.biHeight。 示例.biWidth,这里包含了图片的像素大小;
/定义位图信息头结构变量、高, sizeof(BITMAPINFOHEADER),存放在变量head中 BITMAPINFOHEADER&#47,fp);跳过位图文件头结构BITMAPFILEHEADER fseek( &#47,&quot,0); &#47,每张位图有哥位图文件头结构(信息头)以位图为例
其他类似问题
为您推荐:
图片框的相关知识
等待您来回答
下载知道APP
随时随地咨询
出门在外也不愁

我要回帖

更多关于 vb文本框 的文章

 

随机推荐