zoukankan      html  css  js  c++  java
  • MFC_文本框

    一.闪烁符

      CWnd::CreateSolidCaret 创建插入符

      ShowCaret()显示插入符。

      GetTextMetrics(),获得当前字体的一些信息。

      CWnd::CreateCaret()创建图象插入符

    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 号) 比较方便

    二.路径层的概念

        有以下两种方法创建路径层,作用:可以保护我们先前的文本或者图像不被后来画的覆盖

    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字体程序

    //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);
  • 相关阅读:
    iOS CALayer 学习(2)
    iOS CALayer 学习(1)
    iOS 绘画学习(5)
    iOS 绘画学习(4)
    果冻视图制作教程
    15个名不见经传的Unix命令
    WEB服务器2--IIS架构(转)
    WEB服务器1--开篇
    HTTP协议5之代理--转
    HTTP协议4之缓存--转
  • 原文地址:https://www.cnblogs.com/Alimonky/p/5951851.html
Copyright © 2011-2022 走看看