关于做打印预览时字体大小的匹配问题,高分

VBvsVC 2003-11-09 01:02:53
做了一个打印预览的界面,用picture作为打印内容的显示容器,其大小当然可以根据当前打印机所用的纸张大小按比例进行缩放,可是在其中显示的字体大小怎样按比例缩放呢?比如用A4纸打印,其高宽比大概为29:21,picture的高宽也定为这个比例,整体就可以自由缩放(假设缩小50%),而其中的字体呢?假设打印出的效果是用9号大小,那么在picture中应该按多少比例缩放?请xdjm们指教,高分求助
...全文
319 8 打赏 收藏 转发到动态 举报
写回复
用AI写文章
8 条回复
切换为时间正序
请发表友善的回复…
发表回复
VBvsVC 2003-11-10
  • 打赏
  • 举报
回复
谢谢诸位的解答,这个问题我已经解决差不多了,谢谢
rainstormmaster 2003-11-09
  • 打赏
  • 举报
回复
http://www.china-askpro.com/msg10/qa19.shtml
rainstormmaster 2003-11-09
  • 打赏
  • 举报
回复
http://www.dapha.net/down/show.asp?classid=1&Nclassid=140
有实现打印预览的例子
mylzw 2003-11-09
  • 打赏
  • 举报
回复
不好意思,
StretchBlt pic1.hdc, 0, 0, pic2.Height * 0.8, pic2.Width *0.8, pic2.hdc, 0, 0,pic2.Height, pic2.Width,&HCC0020

这句应为
StretchBlt pic1.hdc, 0, 0, pic2.Width * 0.8, pic2.Height *0.8, pic2.hdc, 0, 0,pic2.Width, pic2.Height,&HCC0020
mylzw 2003-11-09
  • 打赏
  • 举报
回复
用StretchBlt可以缩放picture控件里面的图片大小。
依你目前的要求,需要准备两个picturebox控件,一个显示原始大小,一个显示缩放后的大小
(当然,显示原始大小的piturebox你可以通过Visible=false 隐藏)

StrethBlt函数的作用就是在图片容器中复制图片,并且根据指定的高和宽自动拉伸图片。

下面介绍StrethBlt函数:
Private Declare Function StretchBlt Lib "gdi32" (ByVal hdc As Long, ByVal x As Long, ByVal y As Long, ByVal nWidth As Long, ByVal nHeight As Long, ByVal hSrcDC As Long, ByVal xSrc As Long, ByVal ySrc As Long, ByVal nSrcWidth As Long, ByVal nSrcHeight As Long, ByVal dwRop As Long) As Long

有点长~~ :( 没办法,API都这样,忍~

这个函数里面有几个参数,其中, hdc 为缩放后图片控件的句柄,x和y为缩放后图片的顶点坐标,nWidth和nHeight为缩放后图片的宽和高。 hSrcDC为源图片的句柄,xSrc,ySrc为源图片的顶点坐标,nSrcWidth,nSrcHeight为源图片的宽和高

具体实现方法为:
设: 两个picturebox控件,pic1,pic2 其中pic1为缩放后图片,pic2为原始图片

声明 StretchBlt

StretchBlt pic1.hdc, 0, 0, pic2.Height * 0.8, pic2.Width *0.8, pic2.hdc, 0, 0,pic2.Height, pic2.Width,&HCC0020

给你看一下我一个打印控件中的缩放过程 :)

'缩放过程
Private Sub Combo1_Click()
Dim 缩放 As Single

Select Case Combo1.Text
Case "10%" '缩放比例
缩放 = 0.1
Case "25%"
缩放 = 0.25
Case "50%"
缩放 = 0.5
Case "75%"
缩放 = 0.75
Case "100%"
缩放 = 1
End Select

pl.Height = p.Height * 缩放
pl.Width = p.Width * 缩放

pic = p.hdc '原始图片句柄
picl = pl.hdc '缩放图片句柄

'执行缩放API函数
StretchBlt picl, 0, 0, pw * 缩放, ph * 缩放, pic, 0, 0, pw, ph, &HCC0020
pl.Refresh

Form_Resize '初始滚动条
End Sub

欢迎加我QQ 170836023 共同学习,共同进步。
VBvsVC 2003-11-09
  • 打赏
  • 举报
回复
打印预览的显示按50%缩小的话,显示的字体大小不应该随着变么?
rainstormmaster 2003-11-09
  • 打赏
  • 举报
回复
做打印预览怎么和字体扯上关系了,你的思路不对
VBvsVC 2003-11-09
  • 打赏
  • 举报
回复
求救阿,高手。在北京的话我今天可以请晚饭~~~~

7,789

社区成员

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

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