下面这段程序为什么出现错误?我是想得到当前字体的unicode区间。  CDC *pDC=GetDC();
  HDC hDC=pDC->GetSafeHdc();//加上这个
  GLYPHSET  gly;
  ::GetFontUnicodeRanges(hDC,&gly);  
  AfxMessageBox(gly.cbThis);

解决方案 »

  1.   

    AfxMessageBox 需要的是一个字符串吧,那个 gly.cbThis 的类型.....你不觉得错了吗?
      

  2.   

    我想你多半是VB代码写多了只有VB里面才会写 MsgBox 12 
    :P
      

  3.   

    看一下wingdi.h里边的定义:
    #if (_WIN32_WINNT >= 0x0500)...typedef struct tagGLYPHSET
    {
        DWORD    cbThis;
        DWORD    flAccel;
        DWORD    cGlyphsSupported;
        DWORD    cRanges;
        WCRANGE  ranges[1];
    } GLYPHSET, *PGLYPHSET, FAR *LPGLYPHSET;
      

  4.   

    在StdAfx.h里边第一条include前添加:
    #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);
      

  5.   

    #define _WIN32_WINNT 0x500
    为什么要加在StdAfx.h 这个文件里呢?