error2---BeginPath和EndPath之间的TextOut无法显示
并不是所有字體,由TextOut函數(shù)輸出都能形成路徑,
通常像宋體、楷體_GB2312等TrueType類型的字體才可以,
有一個(gè)簡單的判斷方法,當(dāng)你打開字體選擇對(duì)話框時(shí),只有字體
前有T符號(hào)標(biāo)記的,才是TrueType字體,當(dāng)然在CFontDialog中可以
指定只顯示TrueType字體!
所以以下代碼經(jīng)測(cè)試通過!
void CTextView::OnDraw(CDC* /*pDC*/)
{
??? CTextDoc* pDoc = GetDocument();
??? ASSERT_VALID(pDoc);
??? if (!pDoc)
??? ??? return;
??? // TODO: 在此處為本機(jī)數(shù)據(jù)添加繪制代碼
??? 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);???????? //劃定一個(gè)區(qū)域作為剪切區(qū)域
??? 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);
??? }
}
總結(jié)
以上是生活随笔為你收集整理的error2---BeginPath和EndPath之间的TextOut无法显示的全部內(nèi)容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: Python文件夹与文件的操作
- 下一篇: Arcengine 10 ecp