注册 登录  
 加关注
   显示下一条  |  关闭
温馨提示!由于新浪微博认证机制调整,您的新浪微博帐号绑定已过期,请重新绑定!立即重新绑定新浪微博》  |  关闭

生命无非记忆

不要在记忆中丢失了自己

 
 
 

日志

 
 

VC编辑框实现自动换行  

2010-01-15 19:15:18|  分类: c/c++/MFC |  标签: |举报 |字号 订阅

  下载LOFTER 我的照片书  |

在自动换行设置的时候,要在EDIT控件的属性中选中"multiline"的属性和Auto_HScroll、Vertical scroll。
经过多次测试,总结出VC编辑框(EDIT)的自动换行与自动滚屏的方法。

方法一: (当EDIT映射到一CString时)
m_String = m_String + sNewString + "\r\n"   

//自动换行(其中m_String是EDIT筐所关联的CString对象)
UpdateData(false);

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

方法二: (当EDIT映射到一EDIT时)
m_Edit.SetSel(-1, -1);       //自动滚屏(其中m_Edit是EDIT筐所关联的EDIT控制对象)
m_Edit.ReplaceSel(sNewString+"\r\n");    //自动换行

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

以上,m_String、m_Edit.分别为给编辑框添加的成员变量;sNewString 为要显示的字符串

使用上面两种方法是要注意,他们只使用于静态的换行,如果要想实现动态换行,也就是说使用编辑框输入的时候,如果输入的字符串超过了编辑框的宽度,这时候就换行,则要使用第三种方法

方法三:m_EventEdit是与编辑框关联的控件变量,m_EventString是与编辑框关联的字符串变量

CRect EditRect(0,0,0,0),FontRect(0,0,0,0);
 int EditWidth=0;
 int FontWidth=0;
 m_EventEdit.GetRect(&EditRect);
 EditWidth=EditRect.Width();

 CClientDC dc(this);
 NONCLIENTMETRICS ncm;
 ncm.cbSize = sizeof(NONCLIENTMETRICS);
 SystemParametersInfo(SPI_GETNONCLIENTMETRICS, sizeof(ncm), &ncm, 0);

 CFont font;
 font.CreateFontIndirect(&ncm.lfMessageFont);
 // 将字体选进DC
 CFont* pOldFont = dc.SelectObject(&font);
 // 计算文本大小
 UpdateData(TRUE);
 dc.DrawText(m_EventString, FontRect, DT_CALCRECT);
 // 回复旧字体-这是必须的
 dc.SelectObject(pOldFont);

 FontWidth=FontRect.Width();

//如果字符串宽度大于编辑框宽度,则换行
 if(FontWidth>=EditWidth)
 {
  m_EventString+="\r\n";
        //   Add   soft   line-break   breaks.  
        m_EventEdit.FmtLines(TRUE);  
        //   Dump   the   text   of   the   edit   control.  
        afxDump   <<   m_EventString;
        //   Remove   soft   line-break   breaks.  
        m_EventEdit.FmtLines(FALSE); 
 }

  评论这张
 
阅读(7050)| 评论(0)
推荐 转载

历史上的今天

在LOFTER的更多文章

评论

<#--最新日志,群博日志--> <#--推荐日志--> <#--引用记录--> <#--博主推荐--> <#--随机阅读--> <#--首页推荐--> <#--历史上的今天--> <#--被推荐日志--> <#--上一篇,下一篇--> <#-- 热度 --> <#-- 网易新闻广告 --> <#--右边模块结构--> <#--评论模块结构--> <#--引用模块结构--> <#--博主发起的投票-->
 
 
 
 
 
 
 
 
 
 
 
 
 
 

页脚

网易公司版权所有 ©1997-2017