www.pudn.com > mfcopentree.rar > ChineseFont.h
struct glchar_s
{
GLuint _dlist; // display list use to display the char
int _chwidth; // width of the char ( in pixels )
};
bool init_wchar( HDC hdc, wchar_t c, glchar_s & glch )
{
// generate display lists
GLuint l = glGenLists(1);
if ( 0 == l )
{
return false;
}
// get window DC
HDC dc = hdc;
if ( 0 == dc )
{
glDeleteLists(l, 1);
return false;
}
// select default fixed font
HGDIOBJ myfont = CreateFont(32, 0, 0, 0, FW_NORMAL, 0, 0, 0, DEFAULT_CHARSET, OUT_CHARACTER_PRECIS,
CLIP_CHARACTER_PRECIS, DEFAULT_QUALITY, DEFAULT_PITCH | FF_DONTCARE, _T("»ªÎÄÐп¬"));
HGDIOBJ oldfont = SelectObject( dc, myfont );
// get char width
SIZE sz;
if ( !GetTextExtentPoint32W(dc, &c, 1, &sz) )
{
SelectObject(dc, oldfont);
glDeleteLists( l, 1 );
return false;
}
// create font list
if ( !wglUseFontBitmapsW(dc, c, 1, l) )
{
SelectObject(dc, oldfont);
glDeleteLists( l, 1 );
return false;
}
// success
SelectObject(dc, oldfont);
glch._chwidth = sz.cx;
glch._dlist = l;
return true;
}