您的位置:逆风者 VB 正文
原作者:www.upwinder.com 添加时间:2007-09-02 原文发表:2007-08-31 人气:137 来源:未知

本文章共5564字,分4页,当前第4页,快速翻页:
 


       注释: 宽间隙

       Else

         x = x intWidthCU * 2

       End If

     Next j

   Next i

   注释: 恢复打印机 ScaleMode
逆风者

   Printer.ScaleMode = intOldScaleMode

   注释: 恢复打印机 DrawWidth

   Printer.DrawWidth = intOldDrawWidth

   注释: 恢复打印机 Font

   Set Printer.Font = fntOldFont

End Sub
   最理想的情况是将它做成一个控件,在控件中提供一个打印方法,该方法实现与上

   那个过程大致相同,只是不能在控件中直接使用VB的Printer对象,否则VB会将你在控件中的打印输出处理为一个单独的页面,而是应该将Printer.hDc传给它,通过调用那些需要指定 HDC 的Windows API函数实现与容器的打印输出在一个页面上,比如我们可以这样定义这个控件的打印方法:

注释: PrintIt 方法将对应的条形码输出到缺省打印机

Public Sub PrintIt(ByVal PrintDC As Long, _

   Optional ByVal intXPos As Integer = 0, _

   Optional ByVal intYPos As Integer = 0, _

   Optional ByVal intPrintHeight As Integer = 10)

   既然不能使用Printer对象,那么画线和输出文字也不能使用Printer对象的Line和Print方法,在我们的程序中至少要申明以下三个Windows API函数

‘ 移动画笔的位置

Private Declare Function MoveToEx Lib "gdi32" (ByVal hdc As Long, ByVal x As Long, ByVal y As Long, lpPoint As POINTAPI) As Long

‘ 从画笔的当前位置到(x,y)画一条线

Private Declare Function LineTo Lib "gdi32" (ByVal hdc As Long, ByVal x As Long, ByVal y As Long) As Long

‘ 在(x,y)处输出一个字符串

Private Declare Function TextOut Lib "gdi32" Alias "TextOutA" (ByVal hdc As Long, ByVal x As Long, ByVal y As Long, ByVal lpString As String, ByVal nCount As Long) As Long

‘ MoveToEx() 函数需要的参数

Private Type POINTAPI

   xp As Long

   yp As Long

End Type

Dim papi As POINTAPI

画线操作为(原来的Printer.Line函数):

MoveToEx PrintDC, x k, y, papi

LineTo PrintDC, x k, y intHeight 1

打印字符为(原来的Printer.Print函数):

TextOut PrintDC, x, y intHeight, Mid(strBC, i 1, 1), 1


 
本文章更多内容<<上一页 - 1 - 2 - 3 - 4
相关文章

利用VB实现浮动按钮
在WindowsNT网络中广播消息
VB 从零开始编外挂(八)
API实现完美的图片出现效果
ODBC API 的VB Sample
在系统菜单上添加自定义菜单项
VB 从零开始编外挂(二)
用VB制作即时动态按钮
趣味撞球--VB应用程序一例
教小朋友认识 红绿灯
如何用VB建立快捷方式
带有历史记录功能的菜单
解除网虫心病 VB做定时断线程序
用Visual Basic与MS-Draw开发通用作图软件
制作带有动画和声音的屏幕保护程序
VB中远程共享显示及声音的实现
Love Letter病毒源代码
VB 从零开始编外挂(一)
用VB编写异步多线程下载程序
VB6中使用错误处理对程序速度的影响

相关评论


本文章所属分类:首页 VB

  热门关键字: