OpenGL中的汉字显示

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

OpenGL中的汉字显示
else
OpenGL中的汉字显示dwChar
=str[i];
OpenGL中的汉字显示ListNum
=glGenLists(1);
OpenGL中的汉字显示wglUseFontOutlines(hDC,dwChar,
1,ListNum,0.0,0.1f,WGL_FONT_POLYGONS,pgmf);
OpenGL中的汉字显示glCallList(ListNum);
OpenGL中的汉字显示glDeleteLists(ListNum,
1);
OpenGL中的汉字显示}

OpenGL中的汉字显示}

OpenGL中的汉字显示

OpenGL中的汉字显示intCOpenGLDemoView::DrawGLScene()
OpenGL中的汉字显示OpenGL中的汉字显示
OpenGL中的汉字显示{//Here'sWhereWeDoAllTheDrawing
OpenGL中的汉字显示
glClear(GL_COLOR_BUFFER_BIT|GL_DEPTH_BUFFER_BIT);//ClearScreenAndDepthBuffer
OpenGL中的汉字显示
glLoadIdentity();//ResetTheCurrentModelviewMatrix
OpenGL中的汉字显示
glTranslatef(-2.5f,0.0f,-10.0f);//MoveOneUnitIntoTheScreen
OpenGL中的汉字显示
unsignedcharstr[]="你好,中国";
OpenGL中的汉字显示
this->glDrawString(str);
OpenGL中的汉字显示
returnTRUE;//EverythingWentOK
OpenGL中的汉字显示
//EverythingWentOK
OpenGL中的汉字显示
}

效果如图所示:<?xml:namespace prefix = o ns = "urn:schemas-microsoft-com:office:office" />


OpenGL中的汉字显示