• 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);
  • 相关阅读:
    Linux内核邮件列表发送和回复格式研究
    FastCopy包含和排除文件夹处理
    Linux解压命令(tar)
    Linux下的删除命令
    分区还原工具(DiskGenius)
    树莓派利用PuTTY进行远程登录
    树莓派下载地址及一些常用工具
    树莓派开机黑屏问题解决
    Jenkins从2.x新建Job时多了一个文件夹的功能(注意事项)
    Jenkins的Publish Over FTP Plugin插件参数使用
  • 原文地址:https://www.cnblogs.com/Alimonky/p/5951851.html
Copyright © 2020-2023  润新知