MFC——CEdit类

本文介绍Windows编辑框的常用样式组合,如WS_CHILD|WS_VISIBLE与WS_EX_CLIENTEDGE等,并提供解决编辑框内容刷新时浏览问题的方法。文中详细列举了各种编辑框样式及其用途。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

单行编辑框常用组合:WS_CHILD|WS_VISIBLE,然后再加上凹陷的WS_EX_CLIENTEDGE样式,但是Create中添加WS_EX_CLIENTEDGE不会生效

多行编辑框常用组合:WS_CHILD|WS_VISIBLE|ES_MULTILINE

必须在Create后通过ModifyStyleEx添加,还不能通过ModifyStyle

m_keyEdit.Create(WS_VISIBLE|WS_CHILD, LINE_EDIT_RECT, &m_dataGroup, IDC_KEY_EDIT);
m_keyEdit.ModifyStyleEx(0,WS_EX_CLIENTEDGE, SWP_FRAMECHANGED);

所有样式如下:

// 超出边界水平滚动
ES_AUTOHSCROLL

// 允许垂直滚动但没有滚动条
ES_AUTOVSCROLL

// 文本居中
ES_CENTER

// 左对齐文本
ES_LEFT

// 小写字母显示所有字符
ES_LOWERCASE

// 多行编辑框
ES_MULTILINE

// 控件失去焦点时防止编辑控件隐藏所选内容
ES_NOHIDESEL

// 仅允许在编辑控件中输入数字
ES_NUMBER

// 输入的字符进行ANSI到OEM再到ANSI的转换,已过时
ES_OEMCONVERT

// 显示*代替输入的字符
ES_PASSWORD

// 只读
ES_READONLY

// 右对齐
ES_RIGHT

// 大写字母显示
ES_UPPERCASE

// 通过回车而不是默认按钮插入换行符
ES_WANTRETURN

 

常见问题解决:

1.不断刷新CEdit内容时,无法正常浏览内容,每次SetWindowText光标都会回到最开始,并且滚动条也会到最开始

// 提前获取滚动条位置
int vScrollPos = m_edit->GetScrollPos(SB_VERT);

// 更新CEdit内容
// ……

// 设置滚动条到之前状态
m_edit->SetScrollPos(SB_VERT, vScrollPos);
// 设置视图到之前状态
m_edit->LineScroll(vScrollPos);        

 

 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值