如何在VB6 Addin中使用VBIDE以编程方式打印源代码..?

如何以编程方式在VB6 Addin中打印源代码..?我在对象浏览器中找不到VBIDE的打印或预览方法.

我搜索过高和低在谷歌上很低,并且在VBIDE代码模块打印方面缺乏信息.我为PrettyPrint获得了很多热门,但就是这样.缺乏是如此之大,以至于我想知道是否存在一些我完全缺失的基本概念.

我害怕Herb在https://stackoverflow.com/a/41034211/2705042年提到的O’Reilly书的副本,它没有提到源代码的打印.我能看到的唯一方法是将代码导出到文本文件,并通过与VBIDE无关的常用方法打印它们.

我还在http://www.cpearson.com/excel/vbe.aspx检查了Chip Pearson的VBE指南,它几乎与VBIDE相同,甚至没有打印代码的线索,除了我提到的保存到文本文件然后打印的想法.

**理想情况下,我想使用现有的VB6文件>打印对话框,添加了一个额外的复选框.我意识到在现有对话框中添加控件是另一个主题,我不反对创建我自己的打印对话框版本.

解决方法

可以使用CommandBarButton代理和SendKeys.

获取Print CommandBarControl的句柄很简单,但是按下按钮会引发一个对话框,所以我们必须使用SendKeys设置选项并提交表单….

您可以使用类似于以下内容的代码:

Dim printCommand As CommandBarControl
Set printCommand = Application.VBE.CommandBars.FindControl(ID:=4)

printCommand.Execute

'Yep,SendKeys,erghhh
Application.SendKeys "P" 'Force the whole project to print
Application.SendKeys "{ENTER}"

相关文章

Format[$] ( expr [ , fmt ] ) format 返回变体型 format$ 强...
VB6或者ASP 格式化时间为 MM/dd/yyyy 格式,竟然没有好的办...
在项目中添加如下代码:新建窗口来显示异常信息。 Namespace...
转了这一篇文章,原来一直想用C#做k3的插件开发,vb没有C#用...
Sub 分列() ‘以空格为分隔符,连续空格只算1个。对所选...
  窗体代码 1 Private Sub Text1_OLEDragDrop(Data As Dat...