热点推荐

查看: 515|回复: 0
收起左侧

[资料] VC编辑框(EDIT)的自动换行与自动滚屏的方法

[复制链接]
  • TA的每日心情
    可怜
    3 天前
  • 签到天数: 31 天

    连续签到: 1 天

    [LV.5]常住居民I

    10

    主题

    36

    帖子

    501

    积分

    Rank: 3

    积分
    501
    发表于 2018-5-10 19:11:25 | 显示全部楼层 |阅读模式

    51Halcon诚邀您的加入,专注于机器视觉开发与应用技术,我们一直都在努力!

    您需要 登录 才可以下载或查看,没有帐号?会员注册

    x
    方法一:(当EDIT映射到一CString时)
    m_String = m_String + sNewString + "\r\n"    //自动换行
    UpdateData(false);

    此法只能做到自动换行,不会自动滚屏到最后一行。

    方法二:(当EDIT映射到一EDIT时)
    m_Edit.SetSel(-1, -1);       //自动滚屏
    m_Edit.ReplaceSel(sNewString+"\r\n");    //自动换行
    UpdateData(true);

    此法可以做到自动换行,并自动滚屏到最后一行。

    以上,m_String、m_Edit.分别为给编辑框添加的成员变量;sNewString 为要显示的字符串
    注意二法中UpdataData参数的区别。
    我发现修改编辑框的属性:Auto_HScroll等用处不大。

    From: http://www.cnitblog.com/liaoqingshan/archive/ 2006/08/28/16077.aspx



    方法三:CEdit没有类似AppendText的函数,如果采用SetWindowText,会造成画面闪烁,滚动条也会有问题。

    另一种追加方式可以解决这些问题:

    int nLength = m_edit.SendMessage(WM_GETTEXTLENGTH);
    或者
    int nLength=m_edit.GetWindowTextLength();
    m_edit.SetSel(nLength, nLength);
    m_edit.ReplaceSel( " abc " ); UpdateData(true);


    发帖求助前要善用论坛搜索功能,那里可能会有你要找的答案;

    如果你在论坛求助问题,并且已经从坛友或者管理的回复中解决了问题,请把帖子分类或者标题前面加上【已解决】

    回报帮助你解决问题的坛友,右下角【免费评分】赠与对方视觉币和热心值,伸手党遭人唾弃,做一个热心并受欢迎的人!

    您需要登录后才可以回帖 会员登录 | 会员注册

    本版积分规则

    经营性网站备案信息 经营性网站
    备案信息

    中国互联网举报中心 中国互联网
    举报中心

    中国文明网传播文明 中国文明网
    传播文明

    诚信网站

    深圳市市场监督管理局企业主体身份公示 工商网监
    电子标识