并不是所有字体,由TextOut函数输出都能形成路径, 通常像宋体、楷体_GB2312等TrueType类型的字体才可以, 有一个简单的判断方法,当你打开字体选择对话框时,只有字体 前有T符号标记的,才是TrueType字体,当然在CFontDialog中可以 指定只显示TrueType字体! 所以以下代码经测试通过! void CTextView::OnDraw(CDC* /*pDC*/){ CTextDoc* pDoc = GetDocument(); ASSERT_VALID(pDoc); if (!pDoc) return; // TODO: 在此处为本机数据添加绘制代码 CClientDC dc(this); CString zec; zec.LoadStringW(IDS_STRINGzec01); CSize cs = dc.GetTextExtent(zec); CRect rect; rect.left = 0; rect.top = 50; rect.right = 50 + cs.cx; rect.bottom = 50 + cs.cy; dc.TextOut(0,50,zec); dc.BeginPath(); dc.Rectangle(0,50,cs.cx,50+cs.cy); //划定一个区域作为剪切区域 dc.EndPath(); dc.SelectClipPath(RGN_DIFF); for (int i=0;i<100;i++) { dc.MoveTo(0,i*5); dc.LineTo(500,i*5); } for (int j=0;j<100;j++) { dc.MoveTo(j*5,0); dc.LineTo(j*5,600); }}
转载于:https://www.cnblogs.com/forlina/archive/2011/08/02/2124607.html
相关资源:数据结构—成绩单生成器