下面这段程序为什么出现错误?我是想得到当前字体的unicode区间。 CDC *pDC=GetDC();
HDC hDC=pDC->GetSafeHdc();//加上这个
GLYPHSET gly;
::GetFontUnicodeRanges(hDC,&gly);
AfxMessageBox(gly.cbThis);
HDC hDC=pDC->GetSafeHdc();//加上这个
GLYPHSET gly;
::GetFontUnicodeRanges(hDC,&gly);
AfxMessageBox(gly.cbThis);
:P
#if (_WIN32_WINNT >= 0x0500)...typedef struct tagGLYPHSET
{
DWORD cbThis;
DWORD flAccel;
DWORD cGlyphsSupported;
DWORD cRanges;
WCRANGE ranges[1];
} GLYPHSET, *PGLYPHSET, FAR *LPGLYPHSET;
#define _WIN32_WINNT 0x500
就可以编译通过了
但是你的代码AfxMessageBpx只能用字符串做第一个参数,你的参数不正确,运行时会出现内存错误。
我给你改了一下:
CDC *pDC=GetDC();
HDC hDC=pDC->GetSafeHdc();//加上这个 GLYPHSET gly;
GetFontUnicodeRanges(hDC,&gly); char str[10];
wsprintf(str, "%d", gly.cbThis);
AfxMessageBox(str);
为什么要加在StdAfx.h 这个文件里呢?