CreateEnhMetaFile 和 PlayEnhMetaFile 会导致空白 EMF 文档
CreateEnhMetaFile and PlayEnhMetaFile result in blank EMF document
我正在尝试将现有的EMF文件重播到另一个文件中并更改一些记录。对于初学者来说,我想将整个文档重播到另一个文档中,但生成的文档是空白的,分辨率比原始文档小得多。
HENHMETAFILE hEmf = GetEnhMetaFile(_T("test.emf"));
ENHMETAHEADER emfHeader;
GetEnhMetaFileHeader(hEmf, 256, &emfHeader);
RECT rcFrame;
memcpy(&rcFrame, &emfHeader.rclFrame, sizeof(RECT));
HDC compressedEmf = CreateEnhMetaFile(NULL, _T("compressed.emf"), &rcFrame, NULL);
PlayEnhMetaFile(compressedEmf, hEmf, &rcFrame);
HENHMETAFILE tmpEMF = CloseEnhMetaFile(compressedEmf);
DeleteEnhMetaFile(tmpEMF);
GetEnhMetaFileHeader(hEmf, 256, &emfHeader);
您的上述行似乎正在制造问题。在这里,您假设您的标头大小为 256 bye,这可能不正确。找出它的正确方法是:
int length = GetEnhMetaFileHeader(hEMf,0,NULL);
GetEnhMetaFileHeader(hEmf, length, &emfHeader);
或
GetEnhMetaFileHeader(hEmf, sizeof(ENHMETAHEADER), &emfHeader);
您可能需要参考以下链接,其中详细描述了此概念。
http://aranna.altervista.org/data/ch18c.html
相关文章:
- 无法通过空白将文本文件行分隔为矢量
- 由cin中的字符串中未捕获空白引起的分割错误
- 尝试从 XamlApplication 编译 C++/WinRT 空白应用程序时,我收到未解析的外部符号 winrt_make_*
- 代码精简版页面变为空白
- 在OpenCV C++中创建空白图像
- Gtkmm 窗口为空白,不显示任何小部件或标题
- 我如何使它,无论用户用空白字符串按 Enter 多少次,它总是打印"开始"字符串?
- OpenGL - 添加第二个着色器属性会导致空白屏幕
- 对象数组打印空白字符串
- 如何在c++中读取do-while循环中的空白
- C++缓冲区是如何工作的(关于空白)
- Shell_NotifyIcon在系统托盘中创建空白、无响应的图标
- 我需要帮助修复C++空白检测器
- 接受 istream 的空白值
- 多米诺骨牌计划。我不知道如何将我的矢量拉到空白中以打印出来
- OpenGL显示空白的白屏
- 如何创建一个程序来替换单个空白/选项卡的多个空白/选项卡
- 字符指针值为空白,为什么代码不打印5
- 在 OpenGL 中呈现空白的线框立方体
- CreateEnhMetaFile 和 PlayEnhMetaFile 会导致空白 EMF 文档