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表示已當前的背景顏色填充背景