一.閃爍符函數
CWnd::CreateSolidCaret 建立插入符字體
ShowCaret()顯示插入符。this
GetTextMetrics(),得到當前字體的一些信息。spa
CWnd::CreateCaret()建立圖象插入符code
1 bitmap.LoadBitmap(IDB_BITMAP1);//此處的 bitmap 爲成員變量! ! ! 2 CreateCaret(&bitmap); 3 ShowCaret(); 4 TEXTMETRIC tm;//字體結構體 5 dc.GetTextMetrics(&tm);// 6 m_ptOrigin.y+=tm.tmHeight;//得到字體高度
字符輸入 CString::LoadString(ID 號) 比較方便對象
二.路徑層的概念blog
有如下兩種方法建立路徑層,做用:能夠保護咱們先前的文本或者圖像不被後來畫的覆蓋ip
(1) pDC->BeginPath(); pDC->Rectangle(50,50,50+sz.cx,50+sz.cy); pDC->EndPath(); pDC->SelectClipPath(RGN_DIFF); (2) CSize sz=pDC->GetTextExtent(str); CRgn rn; rn.CreateRectRgn(0,50,sz.cx,sz.cy); pDC->SelectClipRgn(&rn,RGN_DIFF)
三.在View輸入文字的步驟字符串
1 CFont font;//建立字體對象 2 font.CreatePointFont(300,"華文行楷",NULL);//設置 3 CFont *pOldFont=dc.SelectObject(&font);//將字體選擇到 DC 中 4 TEXTMETRIC tm;//建立字體信息對象 5 dc.GetTextMetrics(&tm);//得到當前字體信息 6 if(0x0d==nChar)//處理回車鍵 7 { 8 m_strLine.Empty(); 9 m_ptOrigin.y+=tm.tmHeight; 10 } 11 else if(0x08==nChar)//處理退格鍵 12 { 13 COLORREF clr=dc.SetTextColor(dc.GetBkColor());//經過句柄獲取背景色,設置文本顏色,保存到clr結構體中 14 dc.TextOut(m_ptOrigin.x,m_ptOrigin.y,m_strLine);//輸出字符 15 m_strLine=m_strLine.Left(m_strLine.GetLength()-1); 16 dc.SetTextColor(clr);//設置文本顏色 17 } 18 else 19 { 20 m_strLine+=nChar; 21 } 22 CSize sz=dc.GetTextExtent(m_strLine); CPoint pt;//處理光標的位置 23 pt.x=m_ptOrigin.x+sz.cx; 24 pt.y=m_ptOrigin.y; SetCaretPos(pt); 25 dc.TextOut(m_ptOrigin.x,m_ptOrigin.y,m_strLine);//輸出字體 dc.SelectObject(pOldFont);//將原先的字體選擇回去。
卡拉ok字體程序it
//DEL m_nWidth+=5;//此爲 view 的成員變量,初始值爲 0 //DEL //DEL //DEL CClientDC dc(this);//建立view句柄 //DEL TEXTMETRIC tm; //建立字體結構體 //DEL dc.GetTextMetrics(&tm);//得到文本字體,保存在tm中 //DEL CRect rect; //建立一個矩形區域 //DEL rect.left=0; //設置區域大小左 //DEL rect.top=200;//設置區域頂部座標 //DEL rect.right=m_nWidth;//設置區域長度量 //DEL rect.bottom=rect.top+tm.tmHeight;//此長方形的長度隨着定時器的觸發,逐漸增大,設置區域高度量 //DEL dc.SetTextColor(RGB(255,0,0));//經過句柄來設置文本顏色 //DEL CString str; //建立字符 //DEL str.LoadString(IDS_WEIXIN);//導入ID 號中的字符 //DEL dc.DrawText(str,rect,DT_LEFT);此函數的做用是將字符串輸出到長方形中, 但若是字符串的長度超過長方形的長度,多餘的字符將被截斷 //DEL //DEL rect.top=150;//在頂部爲150處輸入 //DEL rect.bottom=rect.top+tm.tmHeight;//高度獲取 //DEL dc.DrawText(str,rect,DT_RIGHT);// //DEL //DEL CSize sz=dc.GetTextExtent(str);得到字符串的長度 //DEL if(m_nWidth>sz.cx)當長方形的長度大於字符串的長度後,將其從新歸 0 //DEL { //DEL m_nWidth=0; //DEL dc.SetTextColor(RGB(0,255,0)); //DEL dc.TextOut(0,200,str); //DEL } //DEL //DEL CView::OnTimer(nIDEvent);