使用eto_ignorellanguage的extextoutw()捕获记录失败



我正在制作一个示例,我正在创建一个EMF文件,其中包含一些文本。要添加文本,我使用API extextoutw()与eto_ignorellanguage选项。

此API的返回值为TRUE。但是当我打开EMF文件时,文本不存在。然后我看到了记录。没有ExtTextOutW.

Bellw是代码

HDC hDC = GetDC(hWnd);
RECT Rect = {0, 0, 21590, 27940};
//Create the EMF file DC
HDC hEMFDC  = ::CreateEnhMetaFile(hDC, L"c:\del\1.emf", &Rect, L"Test");
if (NULL != hEMFDC)
{
    RECT Rect = {0, 0, 300, 155};
    HBRUSH hb = CreateSolidBrush(0X00FFFF00);
    FillRect(hEMFDC, &Rect, hb);
    DeleteObject(hb);
    int dx[12] = {25,25,25,25,25,25, 25,25,25,25,25,25};                    
    WCHAR wcsBuffer[] = L"Text Message";
    ExtTextOutW(hEMFDC, 10, 10, ETO_IGNORELANGUAGE, NULL, wcsBuffer, wcslen(wcsBuffer), dx);
    HENHMETAFILE hmf = CloseEnhMetaFile(hEMFDC); 
    DeleteEnhMetaFile(hmf);
    hEMFDC = NULL;
}
ReleaseDC(hWnd, hDC);

请让我知道我在上面的代码做错了什么

您是否阅读了ExtTextOut[W] (MSDN)的文档,特别是标记的部分,如 eto_ignorellanguage :

保留给系统使用。如果一个应用程序设置了这个标志,它就会失败国际脚本支持,在某些情况下可能显示no

最新更新