天天看點

MFC/VC++中的文本輸出

文本輸出

1:在指定區域輸出文本

  1:使用TextOut(int x,int y,const CString& str);方法

  2:使用DrawText(const CString&str,LPRECT lpRect,UINT nFormat)方法在

指定區域繪圖

   lRect:區域對象

   nFormat:格式  常用DT_CENTER(水準居中)DT_LEFT(居左)DT_RIGHT

       DT_WORD_ELLIPSIS無法完全顯示時,用省略号

示例::

else

{

 CDC *p=GetDC(); //擷取裝置上下文的指針

 CString s="I am the first";

  CRect rect(20,20,200,100);//設定區域

 p->DrawText(s,rect,DT_CENTER);

  s="自然有其發展規律ooooo";

          rect.DeflateRect(30,0);//減小框度

  rect.OffsetRect(0,80);//矩形向下平移

 p->DrawText(s,rect,DT_LEFT|DT_WORD_ELLIPSIS);

  CDialog::OnPaint();

}

2:設定文本顔色,采用CDC對象的SetTextColor()方法,

           如pDC->SetTextColr(RGB(255,0,0));

3:設定字型

需要建立字型,兩種方法

  1:CreateFont(),該方法參數很多,需要參考

  2:CreatePointFont(int nPointSize, LPCTSTR lpszFACEname,CDC *p=NULL)//該方法參數少

   其中 nPointSize表示字型大小,

   lpszFACEname:表示字型名稱

   p表示裝置上下文的指針,如果是NULL,将以螢幕的裝置上下文作為轉換依據

4:在通道中輸出文本

 主要是CDC類中提供的幾個通道函數

BeginPath()打開通道

EndPath()關閉通道

StrokePath()用畫筆繪制路徑

執行個體::

else

{

 CPen pen(PS_SOLID,2,RGB(255,0,100));//建立一個畫筆

 CDC *p=GetDC();

 p->SelectObject(&pen);  //選中畫筆

 p->BeginPath();//打開一個通道

        p->SetBkMode(TRANSPARENT);   //設定相應的模式

 CFont *m=p->SelectObject(&m_font);  //選中建立的字型

 p->TextOut(60,100,"慢而穩,賽必勝");

 p->EndPath(); //關閉通道

 p->StrokePath();//用目前的畫筆繪制路徑

 pen.DeleteObject();

 p->SelectObject(m);

 CDialog::OnPaint();

}

5在圖像背景上輸出透明文本

調用CDC的int SetBkMode(int nbBkMode)方法設定裝置上下文的背景模式

    nbBkMode=TRANSPARENT表示透明

    nbBkMode=OPAQUE表示已目前的背景顔色填充背景

繼續閱讀