mfc基于对话框 使用html对话框是什么?,c – 添加支持以在基于对话框的MFC应用程序中打印和预览HTML...

我有一个由两部分组成的问题.我需要添加支持打印到现有的基于对话框的MFC项目.正在打印的文档是使用HTML组成的.我知道我可以添加基于HTML的对话框,但是如何添加打印功能呢?

PS.我需要这个能够根据程序的需要设置打印页面大小.

解决方法:

受到excellent Marc’s Durdin’s article的启发,我做了更多的探索.

实际上似乎有一种更简单的方法来提供自定义DEVMODE和DEVNAMES并在不使用HTML对话框或自定义IE print template的情况下进行打印.这反过来应该允许设置自定义打印机,纸张大小,方向等.

我在C中有一个操场WebBrowser ActiveX主机项目,类似于this.我在我的OLE站点对象(IOleClientSite)上实现了IOleCommandTarget接口.现在这是有趣的部分,当调用打印时(通过Ctrl-P或通过IDM_PRINT),浏览器控件将站点对象作为IOleCommandTarget :: Exec(& CGID_DocHostCommandHandler,OLECMDID_PRINT2,& VARIANT(VT_UNKNOWN),NULL)回调.第3个参数包含一个作为IUnknown传递的对象,但是当查询IDispatch时,它支持所有相同的__IE_* properties,可通过IDispatch :: Invoke获得:

__IE_TemplateUrl (VT_EMPTY)

__IE_ParentHWND (VT_UINT)

__IE_HeaderString (VT_BSTR)

__IE_FooterString (VT_BSTR)

__IE_OutlookHeader (VT_UNKNOWN)

__IE_BaseLineScale (VT_INT)

__IE_uPrintFlags (VT_UINT)

__IE_ContentDocumentUrl (VT_BSTR)

__IE_ContentSelectionUrl (VT_BSTR)

__IE_PrinterCMD_Printer (VT_BSTR)

__IE_PrinterCMD_Device (VT_BSTR)

__IE_PrinterCMD_Port (VT_BSTR)

__IE_BrowseDocument (VT_UNKNOWN)

__IE_TemporaryFiles (VT_ARRAY)

__IE_PrinterCMD_DevNames (VT_I4)

__IE_PrinterCMD_DevMode (VT_I4)

__IE_PrintType (VT_BSTR)

我还没有进一步考虑,但我认为应该可以改变它们中的任何一个并从IOleCommandTarget :: Exec返回S_OK,并期望浏览器控件接受更改.

我希望它在IDM_PRINTPREVIEW/OLECMDID_PRINTPREVIEW2中以类似的方式工作,但我还没有验证.随着时间的推移,我会更多地玩这个.同时,欢迎您试用并分享您的结果.

标签:c,printing,windows,winapi,mfc

来源: https://codeday.me/bug/20190929/1832695.html

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
MFC对话框打印打印是一种方便的功能,可用于在MFC框架下实现打印文件或打印效果。在MFC中,可以通过以下步骤来实现这个功能: 首先,需要在对话框类中添加打印打印的消息映射函数。可以在对话框类的消息映射区内添加ON_COMMAND_EX_RANGE宏,并指定对应的消息ID,例如ID_FILE_PRINT和ID_FILE_PRINT_PREVIEW。 然后,在对应的消息处理函数中,需要进行一些打印打印的设置。可以使用MFC提供的打印对话框类CPrintDialog和打印类CPreviewView来进行相关设置。 在打印消息处理函数中,可以使用MFC提供的CDC(Device Context)类来完成实际的打印操作。首先,需要获取打印设备的DC对象,然后使用CDC对象的相关方法,如StartDoc、StartPage、TextOut等来完成具体的打印操作。最后,通过EndPage和EndDoc来结束打印过程。 在打印消息处理函数中,可以通过CPreviewView类来创建打印视图,并使用相关方法,如OnPrint、OnDraw等来实现打印的效果。同时,还可以在视图中提供一些操作控件,如放大、缩小、翻页等,方便用户查看打印效果。 需要注意的是,在进行打印打印操作时,可能需要对页面布局、字体、边距等进行设置,以确保最终打印结果符合期。 通过以上步骤,可以实现MFC对话框打印打印功能,方便用户将对话框中的内容输出到打印机或打印效果。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值