如何创建自定义 GDI 设备?

发布于 2024-07-16 18:22:08 字数 109 浏览 2 评论 0 原文

是否可以在用户模式下创建自定义 GDI 设备? 这个想法是创建一个设备上下文 (HDC),我们可以将其传递给不透明组件,以便当组件调用 TextOut 等 GDI 函数时,我们可以获得实际的文本字符串。

Is it possible to create a custom GDI device in user mode? The idea is to create a device context (HDC) which we can pass to an opaque component, so that when the component calls GDI functions like TextOut we can get the actual text string.

如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。

评论(1

北座城市 2024-07-23 18:22:08

我没有太多使用 GDI,但我听说 [metafiles](http://msdn.microsoft.com/en-us/library/dd145051(VS.85).aspx)记录绘图并可以回放。 您也许可以从中获取文本字符串。

我已经详细研究过,您可以使用 CreateEnhMetaFile() 创建一个 GDI,将绘图记录到图元文件中。 使用此 GDI 设备绘制组件。 然后您可以调用 EnumEnhMetaFile(),并向其传递回调。 您的回调将使用指向 ENHMETARECORD 的指针来调用。 ENHMETARECORD 以 [EMR](http://msdn.microsoft.com/en-us/library/dd162512(VS.85).aspx)。 它有一个名为iType 的成员,它是绘图操作的类型。

I have not used GDI much, but I've heard that [metafiles](http://msdn.microsoft.com/en-us/library/dd145051(VS.85).aspx) record the drawing and can be played back. You might be able to get the text string from it.

I've looked at it more, and you can create a GDI with CreateEnhMetaFile() that records drawing into a metafile. Have the component draw using this GDI device. Then you can call EnumEnhMetaFile(), passing it a callback. Your callback will get called with a pointer to an ENHMETARECORD. The ENHMETARECORD begins with an [EMR](http://msdn.microsoft.com/en-us/library/dd162512(VS.85).aspx). It has a member called iType that is the type of drawing operation.

~没有更多了~
我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
原文