gpt4 book ai didi

c++ - 如何在 GDI 中播放元文件

转载 作者:太空宇宙 更新时间:2023-11-04 16:18:10 24 4
gpt4 key购买 nike

我对元文件在 GDI 中的实际播放方式很感兴趣。首先,元文件创建时,是否真的包含了函数调用和参数值,所以可以绘制图元?我知道它是用来做 vector 图的,所以这是有道理的…… 第二,meta文件是怎么播放的?实际的元数据是否被绘制,然后以某种方式被 BitBlitted 到 DC,或者立即被绘制到 DC?比方说,如果我使用 FloodFill 来填充图元文件中的某些内容,如果元中的对象与 DC 中绘制的对象相交,是否会出现问题?例如,如果 DC 中的对象填充有 FloodField 中使用的颜色。谢谢。

最佳答案

图元文件非常简单,只是一组记录,这些记录与您为生成它而调用的 GDI 函数相匹配。每条记录都有一个对应于特定 GDI 函数的数字,后面是您传递给该函数的参数值。来自winapi的记录声明:

typedef struct tagENHMETARECORD {
DWORD iType;
DWORD nSize;
DWORD dParm[1];
} ENHMETARECORD, *PENHMETARECORD;

iType 是函数号,nSize 是记录的大小,dParm 存储函数参数值。

因此,当您调用 PlayMetafile() 时,Windows 只是再次调用完全相同的 GDI 函数。您传递的 HDC 参数决定绘图输出的位置。简单易行。

关于c++ - 如何在 GDI 中播放元文件,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/20194185/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com