zoukankan      html  css  js  c++  java
  • 文字编辑和文字处理

    一.创建插入符

    1,   添加 View类的 WM_CREATE 消息响应函数
    2,   在 CXXXView::OnCreate()中添加
    //获得当前文本度量/字体信息
    CClientDC dc(this);
    TEXTMETRIC tm;
    dc.GetTextMetrics(&tm);
    //根据当前字体,设置插入符/光标
    CreateSolidCaret(20,100);        //**
    ShowCaret();

    二.创建图形插入符

    1),为 View类添加成员变量 m_bmp;
    2),把上面的**行用如下语句替换
    m_bmp.LoadBitmap(IDB_BITMAP1);
    CreateCaret(&bitmap);

    三:简单的文字输出

    CString str;
    str="维新科学技术培训中心";
    pDC->TextOut(50,50,str);
    2),获取文字框大小备用
          CSize sz=pDC->GetTextExtent(str);
    3),给str重新赋值,以区别于上一个内容。当然,之前需要在String Table中添加IDS_WEIXIN
         str.LoadString(IDS_WEIXIN);
    pDC->TextOut(0,200,str);

    四:鼠标移动插入符

    给 View增加两个成员变量:
    CString m_strLine 用于存储当前输入行的内容;CPoint m_ptOrigin 用于保存鼠标移动引起插
    入符改变时的新行开始位置
    在 OnLButtonDown 函数中添加如下内容
     
    SetCaretPos(point);//设置插入符位置
    m_strLine.Empty();
    m_ptOrigin=point;//保存此位置

    五:响应键盘输入

    键盘响应需要考虑如下内容:
    1,          鼠标点击键盘输入一个字符,显示到键盘上,插入符/光标后移一位。
    2,          回车之后,光标下移一行
    3,          删除/退格键的响应
     
     
    下面是程序内容:
     
     
    1,给 View类添加 WM_CHAR 消息响应函数
     
    2,在 OnChar函数中添加如下语句

    CClientDC dc(this);
    CFont font;
    font.CreatePointFont(300,"华文行楷",NULL);
    CFont *pOldFont=dc.SelectObject(&font);
    TEXTMETRIC tm;
    dc.GetTextMetrics(&tm);
    if(0x0d==nChar)//回车键响应程序段
    {
           m_strLine.Empty();
             m_ptOrigin.y+=tm.tmHeight;
    }
    else if(0x08==nChar)
    {              //用背景色模拟最后一个字符的消失
             COLORREF clr=dc.SetTextColor(dc.GetBkColor());
             dc.TextOut(m_ptOrigin.x,m_ptOrigin.y,m_strLine);
             m_strLine=m_strLine.Left(m_strLine.GetLength()-1);
             dc.SetTextColor(clr);
    }
    else
    {
    m_strLine+=nChar;
     
    }
     
     
    CSize sz=dc.GetTextExtent(m_strLine);
    CPoint pt;
    pt.x=m_ptOrigin.x+sz.cx;
    pt.y=m_ptOrigin.y;
    SetCaretPos(pt);
    dc.TextOut(m_ptOrigin.x,m_ptOrigin.y,m_strLine);
    dc.SelectObject(pOldFont);

  • 相关阅读:
    支付宝H5 与网页端支付开发
    java图片操作--生成与原图对称的图片
    java 图片的自定义大小
    微信公众号开发(2)---消息的接收发送
    js 创建对象
    jqery多选
    金额大写转换
    js数字转换
    js日期格式转换
    java设计模式
  • 原文地址:https://www.cnblogs.com/yuqilihualuo/p/2998956.html
Copyright © 2011-2022 走看看