在用户模式下创建自定义的GDI设备是否可行?想法是创建一个设备上下文(HDC),我们可以将其传递给不透明组件,因此当组件调用类似TextOut的GDI函数时,我们可以获取实际文本字符串。
在用户模式下创建自定义的GDI设备是否可行?想法是创建一个设备上下文(HDC),我们可以将其传递给不透明组件,因此当组件调用类似TextOut的GDI函数时,我们可以获取实际文本字符串。
我并没有使用过GDI,但我听说(http://msdn.microsoft.com/en-us/library/dd145051(VS.85).aspx)可以记录绘图并进行回放。你也许可以从中获取文本字符串。
我进一步研究了它,你可以使用CreateEnhMetaFile()
创建一个GDI,用于记录绘图到metafile中。让组件使用这个GDI设备进行绘制。然后你可以调用EnumEnhMetaFile()
,传递一个回调函数。你的回调函数将会被调用,并得到一个指向ENHMETARECORD
的指针。ENHMETARECORD
以一个[EMR
](http://msdn.microsoft.com/en-us/library/dd162512(VS.85).aspx)开始。它有一个成员叫做iType
,表示绘图操作的类型。