下一个函数导致断言失败,为什么?
void SimpleMeta(CDC* pDC)
{
CMetaFileDC meta;
meta.CreateEnhanced(pDC, CString("Square.emf"), CRect(0,0,100,100),CString("Simple square"));
meta.Rectangle(10,10,90,90);
meta.CloseEnhanced();
meta.DeleteDC();
}
另外,我注意到在调试时它第二次调用时失败了。它在OnDraw方法中调用。为什么OnDraw方法被调用两次?谢谢。
答案 0 :(得分:1)
您的说明参数不正确。这是来自MSDN的引用
lpszDescription参数指向的字符串必须包含 应用程序名称和图片名称之间的空字符 必须以两个空字符终止 - 例如,“XYZ Graphics 编辑器\ 0Bald Eagle \ 0 \ 0,“其中\ 0表示空字符。如果 lpszDescription为NULL,没有相应的条目 增强型图元文件头。
此外,无需使用CString
包装文字字符串meta.CreateEnhanced(pDC,
_T("Square.emf"),
CRect(0,0,100,100),
_T("My program\0Simple square\0"));
例如