voidCOpenGLDemoView::glDrawString(unsignedchar*str)


{
GLYPHMETRICSFLOATpgmf[1];
HDChDC=wglGetCurrentDC();
HFONThFont;
LOGFONTlf;
memset(&lf,0,sizeof(LOGFONT));
lf.lfHeight=1;
lf.lfWidth=0;
lf.lfEscapement=0;
lf.lfOrientation=0;
lf.lfWeight=FW_NORMAL;
lf.lfItalic=FALSE;
lf.lfUnderline=FALSE;
lf.lfStrikeOut=FALSE;
lf.lfCharSet=GB2312_CHARSET;
lf.lfOutPrecision=OUT_TT_PRECIS;
lf.lfClipPrecision=CLIP_DEFAULT_PRECIS;
lf.lfQuality=PROOF_QUALITY;
lf.lfPitchAndFamily=VARIABLE_PITCH|TMPF_TRUETYPE|FF_MODERN;
lstrcpy(lf.lfFaceName,"宋体");
hFont=CreateFontIndirect(&lf);
//设置当前字体
SelectObject(wglGetCurrentDC(),hFont);
DWORDdwChar;
intListNum;
for(size_ti=0;i<strlen((char*)str);i++)


{
if(IsDBCSLeadByte(str[i]))


{
dwChar=(DWORD)((str[i]<<8)|str[i+1]);
i++;
}
else
dwChar=str[i];
ListNum=glGenLists(1);
wglUseFontOutlines(hDC,dwChar,1,ListNum,0.0,0.1f,WGL_FONT_POLYGONS,pgmf);
glCallList(ListNum);
glDeleteLists(ListNum,1);
}
}
intCOpenGLDemoView::DrawGLScene()


{//Here'sWhereWeDoAllTheDrawing
glClear(GL_COLOR_BUFFER_BIT|GL_DEPTH_BUFFER_BIT);//ClearScreenAndDepthBuffer
glLoadIdentity();//ResetTheCurrentModelviewMatrix
glTranslatef(-2.5f,0.0f,-10.0f);//MoveOneUnitIntoTheScreen
unsignedcharstr[]="你好,中国";
this->glDrawString(str);
returnTRUE;//EverythingWentOK
//EverythingWentOK
}
效果如图所示:<?xml:namespace prefix = o ns = "urn:schemas-microsoft-com:office:office" />