如何获取打印机设备上下文?

2024-06-04

我在 Windows 上尝试使用以下命令打印增强型图元文件 (EMF)播放增强元文件 http://msdn.microsoft.com/en-us/library/dd162800%28VS.85%29.aspx().

我当前正在使用屏幕上窗口的设备上下文来显示它,但现在我想将其发送到打印机。

如何获取打印机的设备上下文并将其正确传递给此函数?


最简单的方法是使用构造设备上下文PRINTDLG.hDevMode and PRINTDLG.hDevNames打电话后PrintDlg如果使用 win32 API,或者调用CPrintDialog::GetPrinterDC如果你使用的是MFC。

如果使用 MFC:

CPrintDialog dlgPrint(FALSE, PD_USEDEVMODECOPIES);
HDC hPrinterDC = dlgPrint.GetPrinterDC();

或 win32 API:

HDC hPrinterDC = NULL;
PRINTDLG dlgPrint;
if (PrintDlg(&dlgPrint) && dlgPrint.hDevMode != NULL)
{
    DEVNAMES *pDevNames = (DEVNAMES*)GlobalLock(dlgPrint.hDevNames);
    DEVMODE* pDevMode = NULL;
    if (dlgPrint.hDevMode != NULL)
        pDevMode = GlobalLock(dlgPrint.hDevMode);
    hPrinterDC = CreateDC((LPCTSTR)pDevNames + pDevNames->wDriverOffset,
                          (LPCTSTR)pDevNames + pDevNames->wDeviceOffset,
                          (LPCTSTR)pDevNames + pDevNames->wOutputOffset,
                          pDevMode);
    GlobalUnlock(dlgPrint.hDevNames);
    if (dlgPrint.hDevMode != NULL)
        GlobalUnlock(dlgPrint.hDevMode);
}
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

如何获取打印机设备上下文? 的相关文章

  • 推导指南中的引用和值之间的差异

    考虑类型A template
  • 在 Unity 进程和另一个 C# 进程之间进行本地 IPC 的最快方法 [关闭]

    Closed 这个问题需要多问focused help closed questions 目前不接受答案 我希望每秒大约 30 次从 C 应用程序向我的 Unity 应用程序传送大量数据 由于 Unity 不支持映射内存和管道 我考虑了 t
  • XamlReader.Load 在后台线程中。是否可以?

    WPF 应用程序具有从单独的文件加载用户控件的操作 使用XamlReader Load method StreamReader mysr new StreamReader pathToFile DependencyObject rootOb
  • 如何访问另一个窗体上的ListView控件

    当单击与 ListView 所在表单不同的表单中的按钮时 我试图填充 ListView 我在 Form1 中创建了一个方法以在 Form2 中使用 并将参数传递给 Form1 中的方法 然后填充 ListView 当我调试时 我得到了传递的
  • C++中的类查找结构体数组

    我正在尝试创建一个结构数组 它将输入字符串链接到类 如下所示 struct string command CommandPath cPath cPathLookup set an alarm AlarmCommandPath send an
  • C# Dns.GetHostEntry 不返回连接到 WiFi 的移动设备的名称

    我有一个 C 中的 Windows 窗体应用程序 我试图获取列表中所有客户端的主机名 下面给出的是 ra00l 来自此链接的代码示例 GetHostEntry 非常慢 https stackoverflow com questions 99
  • 如何在 C# 中定义文本框数组?

    您好 当我在 Windows 申请表上创建文本框时 我无法将其命名为 box 0 box 1 等 我这样做的目的是因为我想循环使用它们 其实我发现TextBox array firstTextBox secondTextBox 也有效
  • django 表单错误打印 __all__

    默认登录模板中的代码 form errors 当帐户处于非活动状态时生成以下 html 输出 ul class errorlist li all ul class errorlist li This account is inactive
  • 将 Excel 导入到 Datagridview

    我使用此代码打开 Excel 文件并将其保存在 DataGridView 中 string name Items string constr Provider Microsoft Jet OLEDB 4 0 Data Source Dial
  • 未定义的行为或误报

    我 基本上 在野外遇到过以下情况 x x 5 显然 它可以在早期版本的 gcc 下编译干净 在 gcc 4 5 1 下生成警告 据我所知 警告是由 Wsequence point 生成的 所以我的问题是 这是否违反了标准中关于在序列点之间操
  • 在一个字节中存储 4 个不同的值

    我有一个任务要做 但我不知道从哪里开始 我不期待也绝对不想要代码中的答案 我想要一些关于该怎么做的指导 因为我感到有点失落 将变量打包和解包到一个字节中 您需要在一个字节中存储 4 个不同的值 这些值为 NAME RANGE BITS en
  • 如何使用 watin 中的 FileUploadDialogHandler 访问文件上传对话框

    我正在使用 IE8 和 watin 并尝试通过我的网页测试上传文件 我不能简单地使用 set 方法设置上传文件 例如 ie FileUpload Find ById someId Set C Desktop image jpg 因为上传文本
  • Visual Studio 中的测试单独成功,但一组失败

    当我在 Visual Studio 中单独运行测试时 它们都顺利通过 然而 当我同时运行所有这些时 有些通过 有些失败 我尝试在每个测试方法之间暂停 1 秒 但没有成功 有任何想法吗 在此先感谢您的帮助 你们可能有一些共享数据 检查正在使用
  • 在 Windows 上部署 Meteor

    我觉得很奇怪的是 没有关于如何将自己的 Meteor Web 应用程序部署到自己的 Windows 服务器上的详细分步说明 或者也许我只是无法使用谷歌找到这样的解释 在很多页面上 甚至在关于 SO 的一些问题上 我发现人们只是简单地说 bu
  • 如何使用 Mongodb C# 驱动程序连接多个集合

    我需要将 3 个集合与多个集合合并在一起 lookup我在 C 驱动程序中尝试过 它允许我 lookup用户采集但无法执行秒 lookup用于设置集合 有人可以帮忙吗 db Transactions aggregate lookup fro
  • 将 log4net 与 Autofac 结合使用

    我正在尝试将 log4net 与 Autofac 一起使用 我粘贴了这段代码http autofac readthedocs org en latest examples log4net html http autofac readthed
  • 私有模板函数

    我有一堂课 C h class C private template
  • .NET中的LinkedList是循环链表吗?

    我需要一个循环链表 所以我想知道是否LinkedList是循环链表吗 每当您想要移动列表中的 下一个 块时 以循环方式使用它的快速解决方案 current current Next current List First 电流在哪里Linke
  • Server.MapPath - 给定的物理路径,预期的虚拟路径

    我正在使用这行代码 var files Directory GetFiles Server MapPath E ftproot sales 在文件夹中查找文件 但是我收到错误消息说 给定物理路径但虚拟路径 预期的 我对在 C 中使用 Sys
  • 如何正确使用 std::condition_variable?

    我很困惑conditions variables以及如何 安全 使用它们 在我的应用程序中 我有一个创建 gui 线程的类 但是当 gui 是由 gui 线程构造时 主线程需要等待 情况与下面的函数相同 主线程创建互斥体 锁和conditi

随机推荐

  • CSS 动画在 Internet Explorer 10 和 11 中不起作用

    以下 css 动画在 Chrome Mozilla Opera 浏览器中完美运行 但在 Internet Exporer 10 和 11 中不起作用 出了什么问题 请参见http jsfiddle net bm72w3n3 http jsf
  • 从 Google Chrome 打印时的页码

    我看过这个答案 page bottom left content counter page counter pages 很多次 但它从来没有为我输出任何内容到页面 即使它应该工作 我尝试过 创造性 的方法来在底部获取页码 但我永远无法让它可
  • 在 PostgreSQL 中存储图像

    好吧 我正在开发一个应用程序 该应用程序将使用运行 PostgreSQL 的 Linux 后端向 Windows 机器提供图像 前端用 C NET 编写 尽管前端应该不重要 我的问题是 在 Postgres 中存储图像的最佳方法是什么 每张
  • axios在自调用函数内部只调用一次(Internet Explorer)

    我有一个函数每 2 5 秒调用自己一次来检查后台运行的任务 它调用 axiosget如果响应错误 则返回一个 url 如果响应成功 我将停止该函数 这在 Chrome 和 Mozilla 上完美运行 但由于某种原因 它在 IE 版本 11
  • 警告从 lambda 返回捕获的引用

    我尝试使用 lambda 有条件地将引用绑定到两个变量之一 int foo bar int choice gt int if true some condition return foo else return bar 这会在 clang
  • Xamarin Forms:System.Reflection.TargetInitationException:调用目标已引发异常

    我正在为这个问题苦苦挣扎 我只是创建了一个简单的跨平台页面 这里是 XAML 代码
  • 如果我更改当前工作目录,为什么 __file__ 会变成无效路径?

    执行中test py from tmp import os print os path abspath file os chdir var print os path abspath file output tmp test py var
  • 如何在没有消息时隐藏 Bootstrap 警报框

    我用 Bootstrap 做了一个简单的警报框 如下所示 div class alertBox span class alert alert info bag session username span div When there is
  • Mac 上的 PythonXY?

    如何在 Mac OS X Lion 上安装 Python 我开始了 它应该能够通过 macports 但无论如何我找不到 mac ports 网站上所述的端口 pythonXY 我对 MAC 和 pythonXY 都不太了解 但在 pyth
  • 从 s3 获取 ogg 轨道的长度而不下载整个文件

    如何在不下载整个文件的情况下获取 ogg 文件的播放长度 我知道这是可能的 因为 HTML5 标签和 VLC 都可以在加载 URL 后立即显示整个播放长度 而无需下载整个文件 有标题或我可以阅读的内容吗 也许甚至是比特率 我可以将其除以文件
  • 使用 SpriteKit 显示横幅广告

    我是 SpriteKit 的新手 刚刚发布了我的第一个游戏 现在我想在游戏中添加横幅广告 然而 我完全迷失了 大多数教程告诉您只需调用 self canDisplayBannerAds YES 在viewDidLoad方法中 我正在这样做
  • 将整个单词与特殊字符匹配的正则表达式不起作用? [复制]

    这个问题在这里已经有答案了 我正在经历这个问题C Regex Match 整个单词 https stackoverflow com q 1209049 443568 它说要匹配整个单词使用 b模式 b 这对于匹配没有任何特殊字符的整个单词效
  • wpf中的图像问题(图像不显示)

    我不明白为什么我无法在 WPF 中显示图像 也许我不小心修改了我的资源文件夹 这就是我没有显示的原因 所以我创建了一个新的 wpf 应用程序 我有这个 当我运行该程序时 我的图片显示为 为什么当我尝试在程序中执行相同的操作时 图像没有显示
  • vtkPythonAlgorithm 控制管道执行

    我正在尝试用 python 编写一个 vtk 过滤器ProjectDepthImage进行投影不是问题 它控制 vtk 管道的执行 基本上 我对 UserEvent 有一个回调 当用户在渲染窗口处于活动状态时按下 u 键时会触发该回调 这将
  • 警告功能默认情况下应该有一个蛇形标识符

    我试图弄清楚这个警告的实际含义 该程序运行完美 但在编译过程中我收到此警告 main rs 6 1 8 2 warning function isMultiple should have a snake case identifier wa
  • 最新版本 6.* Struts2 支持 Tomcat 10 吗? [复制]

    这个问题在这里已经有答案了 最新版本 6 Struts2 支持 Tomcat 10 吗 异常启动过滤器 struts2 java lang ClassCastException class org apache struts2 dispat
  • In 和 Out 属性在 .NET 中如何工作?

    我一直在尝试跨序列化数组AppDomain边界 使用以下代码 public int Read byte buffer int offset int count return base Read buffer offset count 作为猜
  • 媒体文件上的 404 - Django

    昨晚我将项目上传到 pythonanywhere com 我想在那里测试我的项目生产设置 在我允许的模型之一中用户上传JPG 团队徽标 上传过程运行良好 文件位于我的 MEDIA ROOT 中 问题是 当我尝试在模板中访问它 以将其显示在页
  • 将 Web 场迁移到 ASP.NET 运行时版本 4,同时保持会话

    我们已将 Web 应用程序从 net 运行时 2 v 3 5 迁移到 net 运行时 4 v 4 5 我有一个部署问题 我们的 sessionstate 服务器是一个 stateserver 并在单独的服务器上运行框架 2 中的 aspne
  • 如何获取打印机设备上下文?

    我在 Windows 上尝试使用以下命令打印增强型图元文件 EMF 播放增强元文件 http msdn microsoft com en us library dd162800 28VS 85 29 aspx 我当前正在使用屏幕上窗口的设备