首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >适合一页的PrintForm (景观)

适合一页的PrintForm (景观)
EN

Stack Overflow用户
提问于 2013-04-02 11:34:59
回答 1查看 15K关注 0票数 2

我有一个表单,它使用放置在按钮上的PrintForm方法。

下面是确保表单被打印的代码,但是它从左边剪掉了一个块。

代码语言:javascript
复制
Me.PrintForm1.PrinterSettings.DefaultPageSettings.Landscape = True
PrintForm1.Print()

我想知道是否有一个简单的方法适合一页?

EN

回答 1

Stack Overflow用户

发布于 2013-04-04 03:36:34

检查这个msdn链路

这里

另外,我更建议也使用打印预览,因为它可以调整页边距。这是关于打印预览的链接。但在这些链接之间,我建议使用以下代码..

打印比屏幕更大的窗体

  1. 在Visual中启动一个新的标准EXE项目。默认情况下创建Form1。
  2. 将两个PictureBoxes添加到Form1。 避免在第一个PictureBox中绘制第二个PictureBox,因为这样做会使第二个PictureBox成为第一个的成员。相反,将第二个PictureBox的起始点放置在第一个PictureBox的起始点的左侧。
  3. 右键单击Picture2并选择Send to Back
  4. 向Picture1添加两个标签,使Picture2为空。
  5. 将以下代码添加到Form1的常规声明部分: twipFactor = 1440私人Const WM_PAINT = &HF私人Const WM_PRINT =&H 317私人Const PRF_CLIENT = &H4&‘绘制窗口的工作区。私有Const PRF_CHILDREN = &H10&‘绘制所有可见子窗口。PRF_OWNED = &H20&‘绘制所有拥有的窗口。私有声明函数SendMessage Lib "user32“Alias _ "SendMessageA”(ByVal hwnd As Long,ByVal wMsg As Long,_ ByVal wParam As Long,ByVal lParam As Long)与Long Private Sub Form_Load() Dim sWide相同,sTall As Single Me.ScaleMode = vbTwips‘default sWide = 8.5 stall = 11’或14,Me.Width = twipFactor * sWide Me.Height = twipFactor * twipFactor * Picture1 .Top =0 .Width =0 .Width = twipFactor * sWide .Height = twipFactor *失速端与Picture2 .Top =0 .Left =0.Width=.Top*en19#=*以= "Top“=/2.Top =0结束Label2 .Caption =“底部”.Top = (twipFactor *.Top)- .Height *2 .Left = Me.Width /2结束,Me.Visible = True DoEvents Picture1.Picture1.hwnd= True rv = SendMessage(Picture1.hwnd ),WM_PAINT,Picture2.hDC,0) rv = SendMessage(Picture1.hwnd,WM_PRINT,Picture2.hDC,_ PRF_CHILDREN + PRF_CLIENT + PRF_OWNED)
  6. 负责这个项目。
  7. 无论窗体是否完全显示,顶部底部标签都应显示在各自的位置上。

这段代码可以让我们调整表单快照的宽度和高度,所以以后我们想要打印它,它只需要按照我们设置的方式来处理。

票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/15763074

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档