VC编辑框实现自动换行

VC编辑框实现自动换行


2023年12月27日发(作者:)

VC编辑框实现自动换行

在自动换行设置的时候,要在EDIT控件的属性中选中"multiline"的属性和Auto_HScroll、Vertical scroll。

经过多次测试,总结出VC编辑框(EDIT)的自动换行与自动滚屏的方法。

方法一: (当EDIT映射到一CString时)

m_String = m_String + sNewString + "rn"

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

UpdateData(false);

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

方法二: (当EDIT映射到一EDIT时)

m_(-1, -1); //自动滚屏(其中m_Edit是EDIT筐所关联的EDIT控制对象)

m_eSel(sNewString+"rn"); //自动换行

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

以上,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_t(&EditRect);

EditWidth=();

CClientDC dc(this);

NONCLIENTMETRICS ncm;

= sizeof(NONCLIENTMETRICS);

SystemParametersInfo(SPI_GETNONCLIENTMETRICS, sizeof(ncm), &ncm, 0);

CFont font;

FontIndirect(&ageFont);

// 将字体选进DC

CFont* pOldFont = Object(&font);

// 计算文本大小

UpdateData(TRUE);

xt(m_EventString, FontRect, DT_CALCRECT);

// 回复旧字体-这是必须的

Object(pOldFont);

FontWidth=();

//如果字符串宽度大于编辑框宽度,则换行

if(FontWidth>=EditWidth)

{

m_EventString+="rn";

// Add soft line-break breaks.

m_es(TRUE);

// Dump the text of the edit control.

afxDump << m_EventString;

// Remove soft line-break breaks.

m_es(FALSE);

}

来自: /guxue365/blog/item


发布者:admin,转转请注明出处:http://www.yc00.com/web/1703643316a1307670.html

相关推荐

发表回复

评论列表(0条)

  • 暂无评论

联系我们

400-800-8888

在线咨询: QQ交谈

邮件:admin@example.com

工作时间:周一至周五,9:30-18:30,节假日休息

关注微信