请教DrawText函数的用法。

ERPBug 2002-10-10 09:09:06
我准备用VB写一个打印预览程序,现在碰到一个棘手的问题想向大家请教:
我需要在指定的区域(Rect)中输出或打印一段文字,文字需要自动折行或自动截断。我已经使用DrawText函数在PictureBox中实现,但DrawText好象对Printer对象无效,请问大家有什么好的解决办法。
...全文
229 12 打赏 收藏 转发到动态 举报
写回复
用AI写文章
12 条回复
切换为时间正序
请发表友善的回复…
发表回复
ERPBug 2002-11-07
  • 打赏
  • 举报
回复
crystal_heart(笑看风云) :
应该是激活打印机,如果在打印中只使用DrawText函数(没有用到Line或Print命令),则在PictureBox中可打印出文字来,但Printer没有反应。
我加入了以下语句后,Printer立即被激活.
m_ObjDC.Line (0, 0)-Step(0, 0), vbWhite '通过Line语句激活Printer

至于画线使用了 B 参数,盖过了你原先写上的字,则是另外一回事了。
crystal_heart 2002-11-07
  • 打赏
  • 举报
回复
不是激活打印机,而是你画线使用了 B 参数,盖过了你原先写上的字。
ERPBug 2002-11-01
  • 打赏
  • 举报
回复
crystal_heart(笑看风云) :
由于你解释的太简单,我当时不太明白,我最后自己找到了原因,但我还是要感谢你。你说的是对的,再使用DrawText函数对Printer进行操作前,要先执行一个画线操作,来激活打印机。
明天就给分。
crystal_heart 2002-10-12
  • 打赏
  • 举报
回复
在printer上操作,要先画线,在打文字,否则的话,文字就有可能出不来。
ERPBug 2002-10-12
  • 打赏
  • 举报
回复
zyl910(910:分儿,我来了!
请问你所说的打印PictureBox,是不是用PaintPicture来打印图片?
请继续指教。
ERPBug 2002-10-11
  • 打赏
  • 举报
回复
请大家提点建议啊 !
ERPBug 2002-10-11
  • 打赏
  • 举报
回复
To zyl910(910:分儿,我来了!)
如果直接用PictureBox进行打印,
打印速度是否和Printer一样,打印质量是否和Printer一样。
请多指教。(我的电脑旁没有打印机,不能测试这两种打印效果)
zyl910 2002-10-11
  • 打赏
  • 举报
回复
速度肯定快些(内存比外部设备快)
质量可能还高些
zyl910 2002-10-11
  • 打赏
  • 举报
回复
就是在PictureBox上画好
再打印PictureBox
ERPBug 2002-10-10
  • 打赏
  • 举报
回复
To liangwh(勤奋的懒人)
你的办法是可行的,但速度太慢。我希望能有速度更快的方法。

zyl910(910:分儿,我来了!)
我在PictureBox中已经实现了用DrawText进行折行或截断,但却不能用Printer实现折行或截断(即DrawText函数好象对Printer对象无效)。

我想实现如下功能:

Private Sub PrintCellText(ObjDC as Object,ByVal sCellText as string)
Dim nHDC as long
Dim nDrawAlign as integer ‘打印对齐方式
......
Set nHDC = ObjDC.hdc
......
DrawText nHDC, sCellText, -1, rectText, _
nDrawAlign + DT_WORDBREAK + DT_VCENTER
end Sub

当进行打印预览时,ObjDC 是PictureBox 对象
当进行实际打印时,ObjDC 是Printer 对象

请各位高手多多指点

zyl910 2002-10-10
  • 打赏
  • 举报
回复
先在Picture中处理好,再打印
liangwh 2002-10-10
  • 打赏
  • 举报
回复
用TextWidth(),TextHeight()函数去判断,然后用程序去实现折行或截断

7,762

社区成员

发帖
与我相关
我的任务
社区描述
VB 基础类
社区管理员
  • VB基础类社区
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧