我使用了个新字体,我把它选入了DC,用TextOut写出来
但是当字符的编码小于128时能正常显示,但超过128不能正确显示
例如
CString s;
s.Format("%c",129);
pDC->TextOut(x,y,s);
结果没有显示,朋友告诉我要用区位码(ASC)来显示字符,但是我不知道
如何在这个例子中用区位码来显示
我想在98下运行程序,不想用Unicode,想用ANSI码来实现
望大家指教~
但是当字符的编码小于128时能正常显示,但超过128不能正确显示
例如
CString s;
s.Format("%c",129);
pDC->TextOut(x,y,s);
结果没有显示,朋友告诉我要用区位码(ASC)来显示字符,但是我不知道
如何在这个例子中用区位码来显示
我想在98下运行程序,不想用Unicode,想用ANSI码来实现
望大家指教~
CreateFont 时注意是 ANSI_CHARSET 还是 GB2312_CHARSET
如果是GB码,如何用GB的编码来显示字符?
是不是直接用数字来表示就行了?
如果是SYMBOL_CHARSET呢?
void CSDI3View::OnDraw(CDC* pDC)
{
CSDI3Doc* pDoc = GetDocument();
ASSERT_VALID(pDoc);
// TODO: add draw code for native data here
CFont font;
VERIFY(font.CreateFont(
40, // nHeight
0, // nWidth
0, // nEscapement
0, // nOrientation
FW_NORMAL, // nWeight
FALSE, // bItalic
FALSE, // bUnderline
0, // cStrikeOut
ANSI_CHARSET, // nCharSet
OUT_DEFAULT_PRECIS, // nOutPrecision
CLIP_DEFAULT_PRECIS, // nClipPrecision
DEFAULT_QUALITY, // nQuality
DEFAULT_PITCH | FF_SWISS, // nPitchAndFamily
"Symbol")); // lpszFacename
// Do something with the font just created...
CFont* def_font = pDC->SelectObject(&font);
pDC->TextOut(5, 5, "屯瓢З", 8);
pDC->SelectObject(def_font);
// Done with the font. Delete the font object.
font.DeleteObject();
}会显示直径符号、度、扑克牌等符号,都是大于128的字符