并不是所有字体,由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);
}
}